Apache普通邮件:例外:将电子邮件发送到以下服务器失败:smtp.gmail.com:587

时间:2019-01-09 06:54:11

标签: java javamail

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

代码:

// 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邮件?阿帕奇·詹姆斯(Apache James)。

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

错误:

  

调试: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是,useAuth是DEBUG SMTP:   尝试连接到主机“ smtp.gmail.com”,端口587,isSSL为false   [INFO] 2019-01-10 09:45:18.237 [main]-例外:发送电子邮件   到以下服务器失败:smtp.gmail.com:587

1 个答案:

答案 0 :(得分:1)

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