我遇到了错误
javax.mail.AuthenticationFailedException:535 5.7.3
尝试发送电子邮件时的身份验证。我尝试使用两个不同的电子邮件帐户。一个使用 Office365服务器详细信息,另一个使用 Gmail服务器详细信息。
在两种情况下,我都会遇到相同的错误。我的代码如下。在我的代码之外,电子邮件地址可以成功发送和接收电子邮件,而不会出现问题。这是我的电子邮件课程,因为它不起作用。我程序的所有其他方面都在工作。非常感谢您提供的帮助。
public class SPUREMAIL{
//CONSTANTS - Things that will never change
private static final String HOST = "smtp.office365.com";
private static final String PORT = "587";
private static final String SENDER = "EMAIL";
private static final String PASSWORD = "PASSWORD";
private static final String SUBJECT = "Spur Design has shared a file with you";
private static final String MESSAGE = "This email message was sent from an unmonitored address. Please contact your Spur Design representative for any questions or concerns";
//this item will change, its the direct link to the file
private String URLToFile;
private String recipient;
public SPUREMAIL(String URLToFile, String recipient){
this.URLToFile = URLToFile;
this.recipient = recipient;
}
//Properties for email
private Properties getProperties(){
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", HOST);
properties.put("mail.smtp.port", PORT);
properties.put("mail.smtp.user", SENDER);
properties.put("mail.smtp.password", PASSWORD);
return properties;
}
//Creating an email session so I can authenticate to server
Session session = Session.getInstance(getProperties(), new javax.mail.Authenticator(){
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(SENDER, PASSWORD);
}
});
public void sendMail(){//This will actually attempt to send the email successfully
try{
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(SENDER));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipient));
message.setSubject(SUBJECT);
message.setText(MESSAGE);
Transport.getTransport("smtp");
Transport.connect(HOST, SENDER, PASSWORD, pass);
Transport.sendMessage(MESSAGE, message.getAllRecipients());
}
catch(MessagingException e){
System.out.println("send failed, exception: " + e);
}
System.out.println("Sent!!!!");
}
}
答案 0 :(得分:0)
您是否已检查此链接- javax.mail.AuthenticationFailedException: 535 5.7.3 Authentication unsuccessful
它说这可能是贵组织的邮件服务器配置问题,因为您的电子邮件ID不允许通过代码发送邮件。可能是您的邮件服务器管理员可以在这里提供帮助。
此外,此链接-https://confluence.atlassian.com/confkb/unable-to-send-email-due-to-javax-mail-authenticationfailedexception-error-message-151519398.html表示原因可能是邮件服务器配置不正确。
答案 1 :(得分:0)
很少有建议可以尝试检查它们是否对您有用。
祝你好运。
答案 2 :(得分:0)
我的代码有两个问题。第一,当我编译整个项目时,电子邮件类没有被编译。这导致我的传输呼叫无法检查。将Transport调用更改为下面的块,并且在成功手动编译电子邮件类之后,我可以发送电子邮件了。所有的功劳归功于Bill Shannon,他为我指明了正确的方向。
<div class="container">
<div class="item col-md-3"></div>
<div class="item col-md-3 col-md-offset-1"></div>
<div class="item col-md-3 col-md-offset-1"></div>
<div class="item col-md-3"></div>
<div class="item col-md-3 col-md-offset-1"></div>
<div class="item col-md-3 col-md-offset-1"></div>
<div class="item col-md-6">this is text content and again and again this is text content and again and again</div>
<div class="item col-md-3 col-md-offset-1"></div>
</div>
答案 3 :(得分:0)
有时候,一个相当大的变化会做出巨大的反应,这种情况也是如此。您必须使用用户名提供完整的邮件地址。发件人的邮件ID的用户名应使用@ domain.com
用户名:******_****@domain.com