java 如何从不同的域发送电子邮件

icomxhvb  于 2023-03-16  发布在  Java
关注(0)|答案(3)|浏览(267)

我正在创建一个应用程序,其中用户应该能够通过电子邮件发送一些报告。我需要用户能够指定他/她的电子邮件地址,并为程序设置必要的属性。我的代码工作时,用户使用gmail帐户。这是代码的一部分:

final String password = "password";
                        Properties props = new Properties();
                        //gmail
                        props.put("mail.smtp.starttls.enable", "true");
                        props.put("mail.smtp.auth", "true");
                        props.put("mail.smtp.host", "smtp.gmail.com");
                        props.put("mail.smtp.port", "587");
                        Session session = Session.getInstance(props,
                          new javax.mail.Authenticator() {
                            protected PasswordAuthentication getPasswordAuthentication() {
                                return new PasswordAuthentication(username, password);
                            }
                        });

上面的代码是有效的。当我尝试从GoDaddy托管的电子邮件发送邮件时,我遇到了一个问题。我使用以下代码发送GoDaddy电子邮件:

final String password = "password";
                        Properties props = new Properties();
                        //GoDaddy
                        props.put("mail.smtp.starttls.enable", "true");
                        props.put("mail.smtp.auth", "true");
                        props.put("mail.smtp.host", "smtpout.secureserver.net");
                        props.put("mail.smtp.port", "80");
                        Session session = Session.getInstance(props,
                          new javax.mail.Authenticator() {
                            protected PasswordAuthentication getPasswordAuthentication() {
                                return new PasswordAuthentication(username, password);
                            }
                        });

当我尝试上述操作并转到目标电子邮件时,我没有找到任何东西,但当我检查GoDaddy电子邮件的收件箱时,它应该是发件人的电子邮件,我发现收件箱中的邮件传递系统消息时,以下内容:(返回代码550)sid:我的天5.7.1更多信息。cm5si19503077pac.22 - gsmtp)。有人能告诉我问题出在哪里吗?谢谢。

mzaanser

mzaanser1#

大多数邮件服务器不会让你发送任何任意发件人地址的邮件。如果他们这样做,他们将被用于垃圾邮件,钓鱼等。你有几个选择...
1.找一个能让你做到这一点的服务。祝你好运!
1.运行你自己的邮件服务器。显然,工作量很大。
1.要求用户提供他们自己的邮件服务器的所有登录信息,然后通过他们自己的邮件服务器发送邮件。用户可能不喜欢这样。
1.以与您的应用程序关联的用户身份发送报告,而不是以最终用户身份发送。

gywdnpxw

gywdnpxw2#

问题出在返回代码550中。此返回代码通常意味着服务器无法投递邮件,因为它试图发送到的收件箱不存在。我会找出使用GoDaddy时导致错误代码的原因,并在不同的电子邮件提供商中尝试您的代码。
http://www.serversmtp.com/en/error-550

mctunoxg

mctunoxg3#

Various SMTP error codes explained开始,它是以下值之一:

550 5.7.1 : Helo command rejected: You aren't localhost.
550 5.7.1 : Helo command rejected: You aren't localhost.localdomain.
550 5.7.1 : Helo command rejected: You are not me
Our servers do not accept SMTP HELO command as HELO localhost or HELO localhost.localdomain or HELO . We accept HELO from a valid Domain Name or your computer name which is other than your domain name. Please check with your ISP or Mail administrator for this issue.

550 5.7.1 Service unavailable; client [a.b.c.d] blocked using rbl.mailhostbox.com
rbl.mailhostbox.com is an inhouse RBL zone which we use to protect our services from inbound attacks. If you encounter any of the above messages, you can whitelist the IP using http://whitelist.mailhostbox.com/
To avoid misuse of this feature, an IP is allowed to be white-listed only a defined number of times. If you face any issues feel free to contact our support helpdesk with the details.

相关问题