javax.mail.SendFailedException
是 JavaMail API 在发送邮件时可能遇到的一种异常,表示邮件发送失败。嵌套的 javax.mail.AuthenticationFailedException
表明认证失败,通常是因为提供的用户名或密码不正确,或者服务器拒绝了连接。
JavaMail API 是一个用于读写邮件的 Java API,它支持 SMTP、POP3 和 IMAP 协议。
SendFailedException
:邮件发送失败时抛出。AuthenticationFailedException
:认证失败时抛出。JavaMail API 广泛应用于需要发送电子邮件的应用程序,如企业系统、电子商务平台、通知服务等。
smtp.gmail.com
和端口 587
或 465
。以下是一个简单的示例,展示如何使用 JavaMail API 发送邮件:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class EmailSender {
public static void main(String[] args) {
String to = "recipient@example.com";
String from = "sender@example.com";
String host = "smtp.example.com";
String username = "your_username";
String password = "your_password";
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "587");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject("Test Email");
message.setText("This is a test email.");
Transport.send(message);
System.out.println("Email sent successfully.");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
通过以上步骤和示例代码,你应该能够诊断并解决 javax.mail.SendFailedException
和 javax.mail.AuthenticationFailedException
相关的问题。
领取专属 10元无门槛券
手把手带您无忧上云