Java メールでバウンスメールを送信者のアドレスとは異なるアドレスに送信し、バウンスメッセージを送信者にまったく送信しないようにしようとしています。
これまでのところ、テスト プログラム (以下) ではどちらも実行できません。
送信者は「joe@acme.com」です。バウンス メッセージを「bounce@acme.com」にのみ送信したい
返信先アドレスと Return-Path: ヘッダーの両方を設定しようとしていますが、バウンスは、bounce@acme.com には送信されず、joe@acme.com にのみ送信されます。
バウンス メッセージのヘッダーを見ると、Return-Path: ヘッダーが送信者の joe@acme.com に設定されており、希望どおりに bounce@acme.com に設定されていません。
javamail 1.4 を使用しています
ヘルプやヒントを事前にありがとう
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import java.util.Properties;
public class SendEmail {
public static void main(String[] args) throws Exception{
String smtpServer = "msg.abc.acme.cp,";
int port = 25;
String userid = "authorized.person";
String password = "password";
String contentType = "text/html";
String subject = "test: bounce an email to a different address from the sender";
String from = "joe@acme.com";
String to = "bogus@fauxmail.com";
String replyto = "bounce@acme.com";
String body = "Test: get message to bounce to a separate email address";
InternetAddress[] arrayReplyTo = new InternetAddress[1];
arrayReplyTo[0] = new InternetAddress(replyto);
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.host", smtpServer);
Session mailSession = Session.getInstance(props);
// Get runtime more runtime output when attempting to send an email
//mailSession.setDebug(true);
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from));
message.setReplyTo(arrayReplyTo);
message.setRecipients(Message.RecipientType.TO, to);
message.setSubject(subject);
message.setContent(body,contentType);
message.setHeader("Return-Path:","<bounce@acme.com>");
Transport transport = mailSession.getTransport();
try{
System.out.println("Sending ....");
transport.connect(smtpServer, port, userid, password);
transport.sendMessage(message,message.getRecipients(Message.RecipientType.TO));
System.out.println("Sending done ...");
}
catch(Exception e) {
System.err.println("Error Sending: ");
e.printStackTrace();
}
transport.close();
}// end function main()
}// end class SendEmail