首页 > 解决方案 > Apache Common Mails:异常:将电子邮件发送到以下服务器失败:smtp.gmail.com:587

问题描述

我在 selenium 执行后实现了自动电子邮件发送器,它适用于非代理环境,但不适用于公司代理环境。有谁知道它有什么问题?需要改变什么?

代码:

// Create the email message
            MultiPartEmail email = new MultiPartEmail();
            email.setHostName("smtp.gmail.com");
            email.setSmtpPort(587);
            email.setAuthenticator(new DefaultAuthenticator("peterapiit@gmail.com", "giqqpudmcjjmpbcc"));
            email.setFrom("peterapiit@gmail.com", "Nicholas Wong");
            email.addTo("kwong@who.int", "Nicholas Wong");
            email.addTo("gann@who.int", "Nicholas Gann");
            email.setBounceAddress("peterwkc30@gmail.com");
            email.setSubject("ePQS Automation Testing Report");
            email.setMsg("Please find the ePQS Automation Testing Report from attachment");
            email.setStartTLSEnabled(true);
            email.setSSLCheckServerIdentity(true);  
            email.setDebug(true); 

            email.getMailSession().getProperties().setProperty("mail.smtp.auth", "true");
            email.getMailSession().getProperties().setProperty("mail.smtp.starttls.enable", "true");
            email.getMailSession().getProperties().setProperty("mail.smtp.port", "587");
            email.getMailSession().getProperties().setProperty("mail.https.proxy.host", "http://10.64.150.9");
            email.getMailSession().getProperties().setProperty("mail.https.proxy.port", "8080");

我们公司的代理需要身份验证。我相信 javax.mail 不支持它。任何支持代理身份验证的 java 邮件?阿帕奇詹姆斯。

如何正确设置代理?任何想法?十亿感谢您的帮助。

错误:

调试:JavaMail 版本 1.6.2 调试:成功加载资源:/META-INF/javamail.default.address.map 调试:getProvider() 返回 javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport ,Oracle] DEBUG SMTP: 需要用户名和密码进行身份验证 DEBUG SMTP: protocolConnect 返回 false, host=smtp.gmail.com, user=kwong, password= DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: 试图连接到主机" smtp.gmail.com”,端口 587,isSSL false [INFO] 2019-01-10 09:45:18.237 [main] - 例外:将电子邮件发送到以下服务器失败:smtp.gmail.com:587

标签: javajakarta-mail

解决方案


在您的属性设置中,您必须将“协议”更改为您正在使用的协议的实际名称,例如“smtp”。


推荐阅读