java - 向不同时区的用户列表发送电子邮件?

标签 java jakarta-mail

我使用以下方法向用户列表发送电子邮件。

  • 我希望每封电子邮件中的“收件人”仅适用于该用户,而不是所有用户。 也就是说,在用户看来,电子邮件仅发送给他/她。 我的猜测是循环

    message.addRecipients(Message.RecipientType.TO, 地址);

然后发送消息,对吗?但这是一个多次发送电子邮件的繁重过程。 我能做什么?

  • 假设我有每个用户的时区,并且我想向每个用户在他/她的时区中发送消息。我想,同样的问题,为每个用户在他/她的时区设置发送日期,然后发送消息,对吗?

方法是:

    try
    {
        Properties props = System.getProperties();
        props.put("mail.smtp.host", "localhost");

        // Get a mail session
        Session session = Session.getDefaultInstance(props, null);

        // Define a new mail message
        Message message = new MimeMessage(session);
        InternetAddress ia = new InternetAddress();
        ia.setPersonal("MySite");
        ia.setAddress(from);
        message.setFrom(ia);

        Address[] address = new Address[recievers.size()];
        for (int i = 0; i < recievers.size(); i++) {
            address[i] = new InternetAddress(recievers.get(i));
        }
        message.addRecipients(Message.RecipientType.TO, address);
        message.setSubject(subject);

        // Create a message part to represent the body text
        BodyPart messageBodyPart = new MimeBodyPart();
        messageBodyPart.setContent(body, "text/html");

        // use a MimeMultipart as we need to handle the file attachments
        Multipart multipart = new MimeMultipart();

        // add the message body to the mime message
        multipart.addBodyPart(messageBodyPart);

        // Put all message parts in the message
        message.setContent(multipart);

        message.setSentDate(getCurrentDate());
        // Send the message
        Transport.send(message);
    }
    catch (Exception ex)
    {
    }

最佳答案

将电子邮件发送给多个收件人而不让每个收件人都看到列表的最简单方法是使用 BCC (blind carbon copy) :

message.addRecipients(Message.RecipientType.BCC, address);

当每个收件人收到邮件时,他们只能看到自己的地址。 您仍然需要设置 TO,但您可以为此使用单个固定虚拟地址。

不过,我不确定您对发送日期有何疑问。电子邮件的发送时间是发送代理发送的时间(和时区),并且由收件人的电子邮件软件将其呈现为正确的本地时区。

或者您的意思是您想伪造每个收件人的发送时间?

关于java - 向不同时区的用户列表发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3010024/

相关文章:

java - MimeMessage 保存更改方法中缺少 ';'

java - JMS为什么要用Java Mail发送邮件

java - 将散列密码传递给 Java Mail API

java - 获取 Java 的 Class<? 的行为扩展 .NET 中的 Map>

java - wcf 互操作 : No timestamp is available in security header to do replay detection

java - 如何在 Android 库模块中使用振动器

java - websphere 中没有此类元素异常

java - 位图代替 Drawable

java - 域在字符串中包含非法字符 - Java Mail

java - 如何从java中的.eml文件获取内部主题