我在执行硒后实现了自动电子邮件发件人,它适用于非代理环境,但不适用于公司代理环境。有人知道这有什么问题吗?需要改变什么?
代码:
// 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
答案 0 :(得分:1)
在属性设置中,您必须将“协议”更改为所使用协议的实际名称,例如“ smtp”。