使用Java Mail API将批量邮件单独发送给收件人

时间:2015-11-18 08:33:18

标签: java email javamail

我需要向数十或数百人发送相同的消息,而无需显示每个人的电子邮件地址。

此外,我需要跟踪对我发送的每封邮件所做的相应操作(即收到状态,打开状态等) 假设我一次以50个接收方式发送消息1000个收件人。

当我以BCC模式发送电子邮件时,我可以实现向十几个人发送相同的消息,而无需显示每个人的电子邮件地址。但在这里,我无法跟踪我发送的每封邮件的相应操作。

当我在正常模式下发送电子邮件时,我可以实现这两种情况,但需要很长时间来处理所有1000个接收者。

有没有更好的方法来完成我需要的两个项目? 如果可以的话,你可以与我们分享以解决问题。

2 个答案:

答案 0 :(得分:1)

我在OTN Forum上回答了你的问题。这是我的回答:

  

唯一更好的方法是与批量邮件服务签订合同,为您完成所有这些工作。

     

您是否可以做得更好可能取决于您的具体含义"跟踪对每封邮件所做的相应操作"。如果您想知道每个收件人是收到邮件还是回复邮件,您需要向每个收件人发送不同的邮件,并附上一些个人身份信息。如果您只想知道邮件是否已成功发送给每个收件人,并且您是否愿意依赖发送状态通知(并非所有邮件服务器都支持),您可以从返回的发送状态通知中确定是否已发送每个收件人是否成功。但同样,一些服务器根本不会返回DSN,有些服务器不会以标准格式返回它们。

此外,我假设您已经尝试过只使用一个连接向每个收件人发送不同的邮件副本,如另一个答案中所述。如果您还没有尝试过,请从那里开始。 : - )

答案 1 :(得分:0)

看看这里:how-to-send-multiple-emails-in-one-session

如果今天您每个邮件使用一个Session和静态Transport.send(),这可能会加快速度。