java - 当我尝试通过 Amazon SES 发送邮件时,总是出现错误
问题描述
我正在尝试通过我在 Amazon SES 上的已验证邮件将邮件发送到另一封已验证邮件,但我无法发送任何邮件,代码是否有任何错误或 Amazon SES 方面存在问题?如果我尝试发送它会显示“正在发送...”,但有时它会失败并且“电子邮件未发送。错误消息:535 身份验证凭据无效”。
package Mail;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class mailSample {
static final String FROM = "MyEmail";
static final String FROMNAME = "MyName";
static final String TO = "Reciever Email";
static final String SMTP_USERNAME = "********";
static final String SMTP_PASSWORD = "**************************";
static final String CONFIGSET = "ConfigSet";
static final String HOST = "email-smtp.us-west-1.amazonaws.com";
static final int PORT = 587;
static final String SUBJECT = "Amazon SES test (SMTP interface accessed using Java)";
static final String BODY = String.join(System.getProperty("line.separator"), "<h1>Amazon SES SMTP Email Test</h1>",
"<p>This email was sent with Amazon SES using the ",
"<a href='https://github.com/javaee/javamail'>Javamail Package</a>",
" for <a href='https://www.java.com'>Java</a>.");
public static void main(String[] args) throws Exception {
Properties props = System.getProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.port", PORT);
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(FROM, FROMNAME));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
msg.setSubject(SUBJECT);
msg.setContent(BODY, "text/html");
msg.setHeader("X-SES-CONFIGURATION-SET", CONFIGSET);
Transport transport = session.getTransport();
try {
System.out.println("Sending...");
transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);
transport.sendMessage(msg, msg.getAllRecipients());
System.out.println("Email sent!");
} catch (Exception ex) {
System.out.println("The email was not sent.");
System.out.println("Error message: " + ex.getMessage());
} finally {
transport.close();
}
}
}
解决方案
推荐阅读
- angularjs - 可重用的布局模板 Angular.js
- json - 如何在 android studio 上使用 klaxon 从 thingspeak 解析 json 以获取字段值?
- image - 如何在 laravel 中使用 ajax 上传图片
- arrays - 为什么对枚举器的调用计数无限期挂起?
- go - 有没有办法将 TagLib::PropertyMap 传递给 Go?
- pandas - 按降序排列 Pandas 堆栈 groupby 输出
- r - R程序绘制图形即网络图
- javascript - 我的反向代理使用自定义域破坏了 wix 导航栏
- python - 打开 cv2 模块的 rc.local 中的导入错误
- node.js - MongoDB find 在 Node.Js 代码中返回 undefined