我使用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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top