web-dev-qa-db-ja.com

Javaメール、返信先アドレスを設定しない

私はJavaで小さなメール送信プログラムを作成しました。このプログラムには、fromto、およびreply-toアドレスがあり、クライアントがメールに返信しようとすると、に返信できるはずです。 reply-toアドレス。現在は機能していません。私のコードは以下のとおりです。

// File Name SendEmail.Java

import Java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendEmail
{
   public static void main(String [] args)
   {

      // Recipient's email ID needs to be mentioned.
      String to = "[email protected]";

      // Sender's email ID needs to be mentioned
      String from = "[email protected]";

      // Assuming you are sending email from localhost
      String Host = "localhost";

      // Get system properties
      Properties properties = System.getProperties();
    properties.put("mail.smtp.from", "[email protected]");

      // Setup mail server
      properties.setProperty("mail.smtp.Host", Host);

      // Get the default Session object.
      Session session = Session.getDefaultInstance(properties);

      try{
         // Create a default MimeMessage object.
         MimeMessage message = new MimeMessage(session);

         // Set From: header field of the header.
         message.setFrom(new InternetAddress(from));

         // Set To: header field of the header.
         message.addRecipient(Message.RecipientType.TO,
                                  new InternetAddress(to));

         // Set Subject: header field
         message.setSubject("This is the Subject Line!");

         // Now set the actual message
         message.setText("New Message goes here");

         // Send message
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

私は実際のGmailアカウントを使用しました。誰か助けてもらえますか..?

16
user1133832

Message.setReplyTo()

その点に注意してください:

  • 「from」は「replyto」と同じではありません
  • spec によると、from-addressのプロパティは「mail.from」です。
  • getDefaultInstance のドキュメントでは、既存のデフォルトインスタンスがない場合にのみ新しいインスタンスが作成され、プロパティは新しいインスタンスの作成時にのみ使用されると指定されています。さらに、デフォルトのインスタンスはグローバル値であり、再利用されるため、すべての電子メールで同じ「差出人」アドレスが必要な場合を除いて、新しいセッションを作成する必要があります(getInstance()を使用)
27
Rolf Rander

試してください:

MimeMessage message = new MimeMessage(session);
message.setReplyTo(new javax.mail.Address[]
{
    new javax.mail.internet.InternetAddress("[email protected]")
});
33