Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android发送自定义电子邮件STARTTLS端口587_Java_Android_Email_Jakarta Mail - Fatal编程技术网

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

Java Android发送自定义电子邮件STARTTLS端口587,java,android,email,jakarta-mail,Java,Android,Email,Jakarta Mail,我需要使用客户端设置发送电子邮件。对主机的访问使用STARTTLS安全性,使用端口587。 要测试以下代码更改的客户数据的安全性: String host = "zimbra.mydomain.net.br"; String port = "587"; String address = "mail@mydomain.net.br"; String pass = "******"; Properties props = new Pr

我需要使用客户端设置发送电子邮件。对主机的访问使用STARTTLS安全性,使用端口587。 要测试以下代码更改的客户数据的安全性:

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.SMTPAddressFailedException:554 5.7.1未知[000.000.000.00]:客户端主机被拒绝:访问被拒绝

-编辑-

调试:getProvider返回javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,sun Microsystems,Inc.,1.4.1] 调试SMTP:useEhlo true,useAuth false 调试SMTP:尝试连接到主机zimbra.myclientaddress.net.br,端口587,isSSL false 220 zimbra.myclientaddress.net.br ESMTP后缀 调试SMTP:已连接到主机zimbra.myclientaddress.net.br,端口:587 EHLO本地主机 250-zimbra.myclientaddress.net.br 250-流水线 250号1741203456 250-VRFY 250-ETRN 250-STARTTLS 250-增强状态码 250-8比特 250 DSN 调试SMTP:找到扩展管道,arg 调试SMTP:找到扩展名大小,arg 1741203456 调试SMTP:找到扩展名VRFY,arg 调试SMTP:找到扩展名ETRN,arg 调试SMTP:找到扩展名STARTTLS,arg 调试SMTP:找到扩展增强状态代码,arg 调试SMTP:找到扩展名8BITMIME,arg 调试SMTP:找到扩展DSN,arg 调试SMTP:use8bit false 邮寄地址: 250 2.1.0正常 RCPT至: 554 5.7.1:拒绝客户端主机:拒绝访问 调试SMTP:无效地址 调试SMTP:rnn2@live.com 调试SMTP:由于目标地址无效,发送失败 RSET 250 2.0.0正常


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


另外,您可能需要。

我激活了session.setDebug true,并在问题描述中输入收集的信息。请检查服务器是否拒绝相同的IP地址,因为电子邮件地址是有效地址。您使用的是非常旧的JavaMail版本。因此,您没有对邮件服务器进行身份验证。升级到,我想它会解决您的问题。如果不可能,请将mail.smtp.auth设置为true,看看是否有帮助。我更新到了最新版本的JavaMail,但试听失败,然后将属性mail.smtp.auth插入true,并且仍然失败,也会引发相同的异常。javax.mail.SendFailedException:无效地址;嵌套的异常是:com.sun.mail.smtp.SMTPAddressFailedException:554 5.7.1:客户端主机被拒绝:Access deniedI在本机android客户端电子邮件中添加了此电子邮件帐户,该帐户工作正常,然后邮件服务器正常,问题确实出在我的代码中。