JAVA メール API を使用してメーリング モジュールの実装を開始しました。メールの配信状況を取得できるように、SMTPMessage を使用しています。問題は、の配信成功レポートを取得していますwrong mail addresses
これは私がメッセージを送信するために行ったことです
SMTPMessage smtpMsg=new SMTPMessage(message);
smtpMsg.setReturnOption(SMTPMessage.RETURN_HDRS);
smtpMsg.setNotifyOptions(SMTPMessage.NOTIFY_SUCCESS |SMTPMessage.NOTIFY_FAILURE);
Transport transport = session.getTransport("smtp");
//attach the listeners for the connection and transmission
transport.addConnectionListener(this);
transport.addTransportListener(this);
transport.connect();
//connect to the server and send the message
transport.sendMessage(smtpMsg, smtpMsg.getAllRecipients());
私のクラスは を実装TransportListener,ConnectionListener
しているので、リスナーを次のようにアタッチしました
public void opened(ConnectionEvent e) {
System.out.println("Connection opened");
}
public void disconnected(ConnectionEvent e) {
System.out.println("Connection disconnected");
}
public void closed(ConnectionEvent e) {
System.out.println("Connection closed");
}
public void messageDelivered(TransportEvent e) {
System.out.println("Message delivered for:");
if (e != null) {
Address[] a = e.getValidSentAddresses();
if (a != null && a.length > 0) {
for (int i = 0; i < a.length; i++) {
System.out.println(((InternetAddress) a[i]).getAddress());
}
}
System.out.println("");
}
}
public void messageNotDelivered(TransportEvent e) {
System.out.println("Message not delivered for:");
if (e != null) {
Address[] a = e.getValidUnsentAddresses();
if (a != null && a.length > 0) {
for (int i = 0; i < a.length; i++) {
System.out.println(((InternetAddress) a[i]).getAddress());
}
}
System.out.println("");
}
}
public void messagePartiallyDelivered(TransportEvent e) {
System.out.println("These addresses are invalid:");
if (e != null) {
Address[] a = e.getInvalidAddresses();
if (a != null && a.length > 0) {
for (int i = 0; i < a.length; i++) {
System.out.println(((InternetAddress) a[i]).getAddress());
}
}
System.out.println("");
}
}
これは、ブログの oe で提案されています。ここで何が問題なのですか?間違ったメール IDS の配信ステータスを false として取得するにはどうすればよいですか
これは私がメッセージを初期化する方法です
MimeMessage message=new MimeMessage(session);
//set the mail sender address
message.setFrom(new InternetAddress(userName));
//set the recipient addresses
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddr));
//set subject of the mail
message.setSubject(subject);
//Set the body of the message
message.setText(body);