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
同じ認証でアドレスとは異なるメールを送信することは可能ですか.....
誰でも問題を見つけるのを手伝ってくれますか.....