我正在尝试通过Java发送电子邮件,我之前已经这样做了,但我现在使用的ISP似乎已经阻止了所有端口,因为我有这个代码:
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
// tried props.put("mail.smtp.port", "25");
//props.put("mail.smtp.port", "8889"); For my personal host setting
props.put("mail.smtp.timout", "10000");
问题是我一直得到Could not connect to port error
,所以如果ISP阻止所有端口,是否有任何可能的方式来发送电子邮件或者万一,我的方法可能有问题。 (它适用于某些ISP,但不适用于运行代码所需的ISP)
答案 0 :(得分:0)
如果有帮助(对于Gmail),请尝试使用此功能。
以下某些行可能不是必需的,但我没有测试每一行只使用这些键值对并且工作正常。
Properties props = new Properties();
props.put("mail.smtp.user", senderEmailAddress);
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.port", port_port);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
//SecurityManager security = System.getSecurityManager();
对于我的本地电子邮件,我使用过这个(非SSL)
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation","true");
Properties props = new Properties();
props.put("mail.smtp.user", senderEmailAddress);
props.put("mail.smtp.host", host_name); //for me : mail.mydomain.com
props.put("mail.smtp.port", smtp_port); //mine is "25"
props.put("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.quitwait", "false");
props.put("mail.smtp.auth", "true");
//props.put("mail.smtp.starttls.enable","true");
//props.put("mail.smtp.socketFactory.port", smtp_port);
//props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
//props.put("mail.smtp.socketFactory.fallback", "false");
//SecurityManager security = System.getSecurityManager();