使用电子邮件发送使用Java的Apache共享电子邮件库
-
21-08-2019 - |
题
我使用Apache的通用电子邮件库来发送电子邮件,但我无法通过Gmail SMTP服务器发送他们。结果 任何人都可以提供的示例代码与Gmail的SMTP服务器等人的作品?
我使用下面的代码不工作:
String[] recipients = {"receiver@gmail.com"};
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com");
email.setAuthentication("sender@gmail.com", "mypasswd");
email.setDebug(true);
email.setSmtpPort(465);
for (int i = 0; i < recipients.length; i++)
{
email.addTo(recipients[i]);
}
email.setFrom("sender@gmail.com", "Me");
email.setSubject("Test message");
email.setMsg("This is a simple test of commons-email");
email.send();
解决方案
发送电子邮件到的GMail SMTP服务器需要验证和SSL。用户名和密码是非常直接的。请确保您有以下属性设置为启用认证和SSL,它应该工作。
mail.smtp.auth=true
mail.smtp.starttls.enable=true
要示例代码添加以下为启用TLS。
有关API-版本<1.3使用:
email.setTSL(true);
结果
该方法已被弃用为版本> = 1.3,相反,您应使用:email.setStartTLSEnabled(true);
其他提示
请在下面找到其工作的代码。很显然,你必须到Apache jar添加到项目的构建路径。
public static void sendSimpleMail() throws Exception {
Email email = new SimpleEmail();
email.setSmtpPort(587);
email.setAuthenticator(new DefaultAuthenticator("your gmail username",
"your gmail password"));
email.setDebug(false);
email.setHostName("smtp.gmail.com");
email.setFrom("me@gmail.com");
email.setSubject("Hi");
email.setMsg("This is a test mail ... :-)");
email.addTo("you@gmail.com");
email.setTLS(true);
email.send();
System.out.println("Mail sent!");
}
此致 的Sergiu
使用commons.email为我工作。
HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.gmail.com");
email.setSmtpPort(465);
email.setSSL(true);
不隶属于 StackOverflow