1

Javaを使用して電子メールを送信するために次のコードを使用しています

 function send(){
   String host1 = "domainname";
   String to = "test@domain.com";
   String from="dontreply@domain.com";
   String subject = "test mail";
   String messageText = "test content";
   boolean sessionDebug = false;
   Properties props = System.getProperties();
   props.put("mail.host", host1);
   props.put("mail.transport.protocol", "smtp");
   Authenticator authenticator = new Authenticator();
   Session mailSession = Session.getInstance(props, authenticator);



       mailSession.setDebug(sessionDebug);
           Message msg = new MimeMessage(mailSession);
   msg.setFrom(new InternetAddress(from));
   InternetAddress[] address = {new InternetAddress(to)};
   msg.setRecipients(Message.RecipientType.TO, address);
   msg.setSubject(subject);
   //msg.setSentDate(new Date());
   msg.setContent(messageText,"text/html");
   Transport.send(msg);
   }
   private class Authenticator extends javax.mail.Authenticator implements java.io.Serializable {
    private PasswordAuthentication authentication;

    public Authenticator() {
         String username = "support@domain.com";

        String password = "**********";
        authentication = new PasswordAuthentication(username, password);
    }
    protected PasswordAuthentication getPasswordAuthentication() {
        return authentication;
    }
}

これは問題なく動作しますが、今は送信元アドレス「someother@domain.com」を変更する必要があり、以前と同じ認証の詳細を使用してメールを送信する必要があります。同じ認証で送信元アドレスを変更すると、次のエラーが発生します。

exceptionjavax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
    com.sun.mail.smtp.SMTPAddressFailedException: 550-Verification failed for <someother@domain.com>
550-No Such User Here"
550 Sender verify failed

同じ認証でアドレスとは異なるメールを送信することは可能ですか.....

誰でも問題を見つけるのを手伝ってくれますか.....

4

1 に答える 1

0

私が疑うのは、fromアドレスが登録されていない送信メールを防止する構成またはポリシーがあることです。ユーザーが返信できるアドレス (認証しているアドレスとは異なるアドレス) を設定することが問題である場合は、reply-to設定できるヘッダーがあります。

于 2012-06-26T09:28:04.643 に答える