Java Android发送自定义电子邮件STARTTLS端口587
我需要使用客户端设置发送电子邮件。对主机的访问使用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
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客户端电子邮件中添加了此电子邮件帐户,该帐户工作正常,然后邮件服务器正常,问题确实出在我的代码中。