当前位置: 首页 > 知识库问答 >
问题:

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

洪星文
2023-03-14

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

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

--编辑--

调试:getProvider()返回javax.mail.provider[TRANSPORT,smtp,com.Sun.mail.smtp.smtptransport,Sun Microsystems,Inc.,1.4.1]调试SMTP:如果是真的,useAuth false调试SMTP:尝试连接到主机“Zimbra.MyClientAddress.net.br”,端口587,isSSL false 220 zimbra.myclientaddress.net.br ESMTP后缀调试SMTP:已连接到主机“Zimbra.MyClientAddress.net.br”,端口:587 EHLO localhost
250-zimbra.myclientaddress.net.br
250-流水线
250-大小1741203456
250-vrfy
250-etrn
250-starttls
250-enhancedstatuscodes
250-8bitmime
250 DSN
调试SMTP:找到扩展“pipelining”,arg“”
调试SMTP:找到扩展“size”,arg“1741203456”
调试SMTP:找到扩展“vrfy”,arg“”
调试SMTP:找到扩展“etrn”,arg“”
调试SMTP:找到扩展“starttls”,arg“”
调试SMTP:找到扩展“enhancedstatuscodes”,arg“”
调试SMTP:找到扩展“8bitmime”,arg“”
调试SMTP:找到扩展“dsn”,arg“”
调试SMTP:use8bit false
邮件来源

共有1个答案

方祺
2023-03-14

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

此外,您可能希望将Session.GetDefaultInstance更改为Session.GetInstance。

 类似资料:
  • 代码不应该在“参考”表中的“n”栏中的“电子邮件发送”栏中再次发送电子邮件。 如有任何帮助,我将不胜感激

  • 我四处搜索,从我可以看出,大多数人只是使用一个SMTP插件为这...但是,我想知道怎么了!:) 几周前,我们开始收到报告说,客户没有收到他们的确认电子邮件,当他们下了订单在我们的商店。这以前工作得很好。这里是真正奇怪的部分,据我所知,它只是当我下了一个订单,处理电子邮件没有发送。我们有两种支付选择,贝宝和克拉纳。两个都有用,我自己也试过。我给自己下了真正的订单,一切都很顺利...除了来自Wooco

  • 我创建了一个子域sesmail.xxxx.com使用Cboard其中xxxx是我的域。 将其设置为Amazon SES的“来自域的邮件”,并将MX和TXT条目添加到我的DNS区域。亚马逊SES成功地验证了它。 我可以发送和接收电子邮件到外部域名,如gmail,雅虎等。然而,我不能发送电子邮件到我自己的域名。 打开通知,我发现邮件被此错误反弹- 外部我可以发送和接收没有问题。在内部,当我给自己发送电

  • 我添加了自定义状态: 我添加了自定义电子邮件: 我可以在电子邮件设置中看到电子邮件,在订单状态下拉菜单中看到状态。现在,每当订单状态更改为时,我就需要发送我的新电子邮件。过渡钩似乎从未开火。 我也试过: 这似乎也不起作用...有什么想法吗?

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送

  • 问题内容: 在Swift 的正常情况下,我使用此代码发送邮件。 如何在SwiftUI中实现相同目标? 我需要使用吗? 问题答案: 如前所述,您需要将组件移植到via 。 这是一个简单的实现: 用法 : (在运行iOS 13的iPhone 7 Plus上进行了测试-就像一个护身符) 为Xcode 11.4更新