为什么Java MailSender无法识别目标电子邮件?

为什么Java MailSender无法识别目标电子邮件?,java,Java,我有一个MailSender类,它有两个方法: private Session createSmtpSession(final String fromEmail, final String fromEmailPassword) { final Properties props = new Properties(); props.setProperty ("mail.host", "smtp.gmail.com"); props.setProperty("mail.smtp

我有一个MailSender类,它有两个方法:

private Session createSmtpSession(final String fromEmail, final String fromEmailPassword) {
    final Properties props = new Properties();
    props.setProperty ("mail.host", "smtp.gmail.com");
    props.setProperty("mail.smtp.auth", "true");
    props.setProperty("mail.smtp.port", "" + 587);
    props.setProperty("mail.smtp.starttls.enable", "true");
    props.setProperty ("mail.transport.protocol", "smtp");


    return Session.getDefaultInstance(props, new javax.mail.Authenticator() {
      protected PasswordAuthentication getPasswordAuthentication() {
          return new PasswordAuthentication(fromEmail, fromEmailPassword);
      }
    });
}

public void sendEmail(String subject, String fromEmail, String fromEmailPassword, String content,    String toEmail){
    Session mailSession = createSmtpSession(fromEmail, fromEmailPassword);
    mailSession.setDebug (true);

    try {
        Transport transport = mailSession.getTransport ();

        MimeMessage message = new MimeMessage (mailSession);

        message.setSubject (subject);
        message.setFrom (new InternetAddress (fromEmail));
        message.setContent (content, "text/html");
        message.addRecipient (Message.RecipientType.TO, new InternetAddress (toEmail));

        transport.connect ();
        transport.sendMessage (message, message.getRecipients (Message.RecipientType.TO));  
    }
    catch (MessagingException e) {
        System.err.println("Cannot Send email");
        e.printStackTrace();
    }
}
好的,上面代码的工作方式如下:

我有个人gmail
myEmail@gmail.com
&如果我想向目的地发送邮件,如aa@xyz.com从
myEmail@gmail.com
,然后我需要呼叫
发送电子邮件(主题,“myEmail@gmail.com,来自电子邮件密码,内容aa@xyz.com");

但最近我从Godaddy购买了VPS&我正在使用Godaddy电子邮件(info@mydomain.com)所以我想发送smg到目的地的电子邮件,如aa@xyz.com从…起info@mydomain.com,然后我需要调用
sendmail(主题,“info@mydomain.com,来自电子邮件密码,内容aa@xyz.com");

但是我得到了错误,因为Godaddy使用端口25 因此,我在
createSmtpSession
中更改了代码,如下所示:

props.setProperty ("mail.host", "smtp.mydomain.com");
props.setProperty("mail.smtp.port", "" + 25);
然而,这次我遇到了另一个问题

DEBUG SMTP: Sending failed because of invalid destination addresses
RSET
250 2.0.0 OK
DEBUG SMTP: MessagingException while sending, THROW: 
javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
    com.sun.mail.smtp.SMTPAddressFailedException: 550 5.1.1 <aa@xyz.com> Recipient not found.  <http://x.co/irbounce>
调试SMTP:由于目标地址无效,发送失败
RSET
250 2.0.0正常
发送时调试SMTP:MessaginException,引发:
javax.mail.SendFailedException:无效地址;
嵌套异常是:
com.sun.mail.smtp.SMTPAddressFailedException:找不到550 5.1.1收件人。
显然,
aa@xyz.com
实际上是存在的,但是为什么会出现这样的错误:找不到收件人。


那么如何解决这个问题呢?

我需要查看Godaddy电子邮件中的传出(SMTP)服务器(如smtpout.secureserver.net),现在它工作正常了

    props.setProperty ("mail.transport.protocol", "smtps");
    props.setProperty ("mail.smtps.host", "smtpout.secureserver.net");
    props.setProperty("mail.smtps.auth", "true");
    props.setProperty("mail.smtps.port", "" + 465);

你应该在GoDaddy上打开一张支持票。你需要与GoDaddy支持团队检查此问题。我需要告诉他们什么?他们中的许多人不懂Java