使用Apache Commons电子邮件库以Javaforms发送电子邮件

我正在使用Apache Commons电子邮件库发送电子邮件,但我无法通过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服务器需要身份validation和SSL。 用户名和密码非常简单。 确保将以下属性设置为启用身份validation和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);