java - 如何使用java邮件API在邮件中发送多个信息

标签 java email jakarta-mail

我正在使用java邮件向发件人发送邮件。但我的问题是我无法在一封邮件正文中发送多个信息,只有一个信息即将到来。但我想在一封邮件中发送多个信息,这里到目前为止我已经

 Properties props = System.getProperties();

    props.put("mail.smtp.user", senderEmail);
    props.put("mail.smtp.host", gmail);
    props.put("mail.smtp.port", port);
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.debug", "true");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.socketFactory.port", port);
    props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.socketFactory.fallback", "false");

    // Required to avoid security exception.
    MyAuthenticator authentication =  new MyAuthenticator(senderEmail,senderMailPassword);
    Session session =  Session.getInstance(props,authentication);
    session.setDebug(true);

    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress(senderEmail));
    message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(recipeintEmail));
    /*message.setRecipients(Message.RecipientType.CC,InternetAddress.parse(WebConstants.AdminMail));*/
    message.setSubject("Password Recovery mail");
    message.setText(resetLink);
    message.setText("1236547");
    message.setText("Here is another text");
    message.setContent(messageText, "text/html; charset=utf-8");
    //message.setText(messageText);

    Transport transport = session.getTransport("smtps");
    transport.connect(gmail,port, senderEmail, senderMailPassword);
    transport.sendMessage(message, message.getAllRecipients());

    transport.close();

我的问题是只有第一个 setText 起作用,其他两个不起作用。任何人都可以帮忙吗?

最佳答案

每次你打电话

message.setText("whatever")

它将覆盖您之前设置的文本。

然后,您最后一次调用

message.setContent(messageText, "text/html; charset=utf-8");

将再次使用 messageText 中存储的内容覆盖所有内容(在您的情况下,显然与 resetLink 的值相同)。

<小时/>

像这样尝试,首先使用 StringBuilder构建您的消息内容,然后将其插入到您的消息中:

StringBuilder sb = new StringBuilder();
sb.append(resetLink).append(System.lineSeparator());
sb.append("1236547").append(System.lineSeparator());
sb.append("Here is another text");

message.setText(sb.toString());

关于java - 如何使用java邮件API在邮件中发送多个信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26859978/

相关文章:

c# - TCP 连接的可靠性如何?

java - 如何获取每个具有最大数量且具有唯一键的 String 数组?

java - 发送 SMTP 的主机错误

java - 在 James 添加新用户

java - 降噪程序

java - 没有酒吧的舞台(javafx)

java - 如何添加电子邮件监控并从 Java Web 服务器应用程序发送

android - 发送邮件后如何再次移动MainActivity?

java - 为什么 SMTP 服务器收不到 DATA 命令?

JavaMail Api 列表标题不起作用