【问题标题】:Java mail, set reply-to address not workingJava 邮件,设置回复地址不起作用
【发布时间】:2023-04-05 20:35:01
【问题描述】:

我用java写了一个小邮件发送程序,有fromtoreply-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 = "xyz@gmail.com";

      // Sender's email ID needs to be mentioned
      String from = "abcd@gmail.com";

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

      // Get system properties
      Properties properties = System.getProperties();
    properties.put("mail.smtp.from", "mnop@gmail.com");

      // 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 帐户。谁能帮忙..?

【问题讨论】:

  • 您的代码似乎没有尝试设置回复地址。
  • 设置mail.smtp.from...怎么样?

标签: java jakarta-mail


【解决方案1】:

试试:

MimeMessage message = new MimeMessage(session);
message.setReplyTo(new javax.mail.Address[]
{
    new javax.mail.internet.InternetAddress("mnop@gmail.com")
});

【讨论】:

    【解决方案2】:

    Message.setReplyTo()?

    请注意:

    • “发件人”与“回复”不同
    • 根据spec,from-address 的属性是“mail.from”
    • getDefaultInstance 的文档指定仅在没有现有默认实例的情况下创建一个新实例,并且这些属性仅在创建新实例时使用。此外,默认实例是一个全局值,将被重复使用,因此除非您希望所有电子邮件都使用相同的“发件人”地址,否则您需要创建新会话(使用 getInstance())

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      相关资源
      最近更新 更多