Android发送自定义电子邮件STARTTLS端口587

时间:2015-04-10 21:10:30

标签: java android email javamail

我需要使用客户端设置发送电子邮件。访问主机使用端口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确定

1 个答案:

答案 0 :(得分:0)

看起来服务器拒绝您的请求,可能是基于您的IP地址,或者可能是基于发件人或收件人地址。添加session.setDebug(true)并检查调试输出以获取有关其失败原因的更多线索。

此外,您可能想要change Session.getDefaultInstance to Session.getInstance