【发布时间】:2023-02-03 15:38:32
【问题描述】:
我怀疑这是我的 transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);线。我认为根本没有建立任何联系。我的代码目前看起来像这样:
private void sendEmail(String messegeToSend) {
final String FROM = "joe.blogs@mydomain.com";
final String FROMNAME = "Joe Blogs";
final String TO = "joe.blogs@joeblogs.com";
final String HOST = "email-smtp.us-west-2.amazonaws.com";
final int PORT = 587;
final String SMTP_USERNAME = "smtpusername";
final String SMTP_PASSWORD = "smtppassword";
try {
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);
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(FROM));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(TO));
message.setSubject("InvoiceRequest");
message.setText(messegeToSend);
Transport transport = session.getTransport();
transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);
Toast.makeText(getApplicationContext(),"Connected!",Toast.LENGTH_LONG).show();
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}catch (MessagingException e){
Toast.makeText(getApplicationContext(),"Sorry, We ran into a problem"+ e.getMessage(),Toast.LENGTH_LONG).show();
throw new RuntimeException(e);
}
}
最后,我想最终从这个应用程序中发送一封电子邮件。我以前使用的是 Google 的 Gmail SMTP,但它即将停用,因此我已切换到 AWS SES,我现在正在努力使用它。
【问题讨论】:
-
我不知道您为什么认为 GMail SMTP 已停用(不是),但您遇到了什么错误?您确定要将用户名/密码等凭据放入您的应用程序中吗?如果有人反编译了您的应用程序,他们可以像您一样发送电子邮件。
标签: java android amazon-web-services smtp gmail-imap