我需要使用客户端设置发送电子邮件。访问主机使用端口587的STARTTLS安全性。 要测试骑乘以下代码(更改客户数据以确保安全性):
String host = "zimbra.mydomain.net.br";
String port = "587";
String address = "mail@mydomain.net.br";
String pass = "******";
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.quitwait", "false");
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", address);
props.put("mail.smtp.password", pass);
props.put("mail.smtp.port", port);
props.put("mail.smtp.ssl.trust", "*");
Session session = Session.getDefaultInstance(props, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(address));
Multipart multiPart=new MimeMultipart();
InternetAddress toAddress = new InternetAddress("rnn2@live.com");
message.addRecipient(Message.RecipientType.TO, toAddress);
message.setSubject("Send Auto-Mail");
message.setContent(multiPart);
message.setText("Demo For Sending Mail in Android Automatically");
Transport transport = session.getTransport("smtp");
transport.connect(host, address, pass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
例外:
javax.mail.SendFailedException:无效的地址; 嵌套异常是: com.sun.mail.smtp.SMTPAddressFailedException:554 5.7.1 unknown [000.000.000.00]:客户端主机被拒绝:访问被拒绝
- 编辑 -
DEBUG:getProvider()返回javax.mail.Provider [TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems,Inc.,1.4.1] DEBUG SMTP:useEhlo是true,useAuth是false DEBUG SMTP:尝试连接到主机“zimbra.myclientaddress.net.br”,端口587,isSSL false 220 zimbra.myclientaddress.net.br ESMTP Postfix DEBUG SMTP:连接到主机“zimbra.myclientaddress.net.br”,端口:587 EHLO localhost
250-zimbra.myclientaddress.net.br
250流水
250-SIZE 1741203456
250-VRFY
250-ETRN
250-STARTTLS
250 ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
DEBUG SMTP:找到扩展名“PIPELINING”,arg“”
DEBUG SMTP:找到扩展名“SIZE”,arg“1741203456”
DEBUG SMTP:找到扩展名“VRFY”,arg“”
DEBUG SMTP:找到扩展名“ETRN”,arg“”
DEBUG SMTP:找到扩展名“STARTTLS”,arg“”
DEBUG SMTP:找到扩展名“ENHANCEDSTATUSCODES”,arg“”
DEBUG SMTP:找到扩展名“8BITMIME”,arg“”
DEBUG SMTP:找到扩展名“DSN”,arg“”
DEBUG SMTP:use8bit false
邮件来自:
250 2.1.0确定
RCPT TO:
554 5.7.1:客户端主机被拒绝:访问被拒绝
DEBUG SMTP:无效的地址
DEBUG SMTP:rnn2@live.com
DEBUG SMTP:由于目标地址无效而发送失败 RSET
250 2.0.0确定
答案 0 :(得分:0)
看起来服务器拒绝您的请求,可能是基于您的IP地址,或者可能是基于发件人或收件人地址。添加session.setDebug(true)并检查调试输出以获取有关其失败原因的更多线索。
此外,您可能想要change Session.getDefaultInstance to Session.getInstance。