簡體   English   中英

com.sun.mail.smtp.SMTPSendFailedException:530-5.5.1需要身份驗證(Java Mail)

[英]com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required (Java Mail)

所以我試圖讓Java Mail工作,因為我在這個網站上看到的其他答案都沒有用,我不得不假設在過去一年左右的時間里有些變化。 所以,如果這個問題看起來像是一個重復,我無法解釋為什么它不起作用。 以下是我的代碼:

try{
        Properties property = new Properties();
        property.setProperty("mail.smtp.host", "smtp.gmail.com");
        property.setProperty("mail.smtp.starttls.enable", "true");
        //property.setProperty("mail.smpt.port", "25");
        property.setProperty("mail.smtp.user", "myEmail@gmail.com");
        property.setProperty("mail.smtp.auth", "true");

        System.out.println("Mail Check 1");

        Session session = Session.getDefaultInstance(property);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress("myEmail@gmail.com"));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress("myEmail@gmail.com"));

        System.out.println("Mail Check 2");

        message.setSubject("Oil Error Report");
        message.setText(emailMessage);

        System.out.println("Mail Check 3");

        Transport transport = session.getTransport("smtps");
        transport.connect("smtp.gmail.com",465,"myEmail@gmail.com","myPassword");
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();

        System.out.println("Mail Sent");
    }catch(Exception ex){
        System.out.println("Mail fail");
        System.out.println(ex);
    }

我起床郵件檢查3然后我得到以下異常:

com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 u3sm10254140ioi.27 - gsmtp

這沒有意義,因為我將mail.smtp.auth設置為true。 我已經查看了過去的答案,並且在發布之前我試圖讓它工作。 我假設它很簡單..任何幫助都會非常感激! 謝謝!

public class EmailSender {    
    public void sendEmail(String emailMessage){

        try{
            final String fromEmail = ""; //requires valid gmail id
            final String password = ""; // correct password for gmail id
            final String toEmail = ""; // can be any email id 

            System.out.println("TLSEmail Start");
            Properties props = new Properties();
            props.put("mail.smtp.host", "smtp.gmail.com"); //SMTP Host
            props.put("mail.smtp.port", "587"); //TLS Port
            props.put("mail.smtp.auth", "true"); //enable authentication
            props.put("mail.smtp.starttls.enable", "true"); //enable STARTTLS

                //create Authenticator object to pass in Session.getInstance argument
            Authenticator auth = new Authenticator() {
                //override the getPasswordAuthentication method
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(fromEmail, password);
                }
            };
            Session session = Session.getInstance(props, auth);

            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(fromEmail));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));

            System.out.println("Mail Check 2");

            message.setSubject("Oil Error Report");
            message.setText(emailMessage);

            System.out.println("Mail Check 3");

            Transport.send(message);
            System.out.println("Mail Sent");
        }catch(Exception ex){
            System.out.println("Mail fail");
            System.out.println(ex);
        }
    }
}

這是使它運行所需的代碼! 它是2014年11月,目前適用於Gmail! 我希望這段代碼可以幫助節省時間,占用我的大部分時間! 除此代碼外,您還必須更改電子郵件設置,以允許允許使用這些電子郵件。 您第一次嘗試時會收到來自Google的電子郵件,它會指導您更改設置。

謝謝,祝你好運!

你看過這個網址了嗎? 你跟着那里的所有步驟了嗎? 發生了什么?

你想要解決這些常見的錯誤

請注意,由於您使用的是“smtps”協議,因此不會應用mail.smtp。*屬性。 但這沒關系,因為你無論如何都不需要它們,因為你正在調用connect方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM