当收件人和抄送列表中的电子邮件时,Java Mail发送重复的电子邮件

时间:2015-12-24 02:23:38

标签: java email javamail

我发现当我的电子邮件地址同时位于{!! Illuminate\Html\HtmlFacade::decode(Illuminate\Html\HtmlFacade::link('clients', '<i class="fa fa-circle-o"></i> Pregled klijenata')) !!} 列表和TO列表时,我的应用程序会向我发送两次电子邮件。

如何控制仅发送到同一电子邮件地址的电子邮件,但保留地址位于CCTO列表?

CC

4 个答案:

答案 0 :(得分:0)

在将邮件发送到CC之前,您可以编写一行代码来检查TO是否不是CC。

或者只使用sendMessage一次:Send Mail to multiple Recipients in java我不确定它是否会重复删除,如果没有,则将字符串地址存储在Set(在添加之前重复删除。

答案 1 :(得分:0)

您的收件人是否在 TO 或 CC 部分重复应该无关紧要。邮件服务器应注意过滤而不是发送重复的消息。为了实现这一点,请在您的代码中标记 2 点。

  1. 唯一的消息 ID
  2. 日期标题

这些将帮助您避免重复。

mimeMessage.setSentDate(new Date()); // Date header
mimeMessage.saveChanges();           // If no unique message-ID is set, then this will set it for you

答案 2 :(得分:-1)

代码在java中发送邮件 并从属性文件中调用电子邮件。

Properties prop = new Properties(); 
InputStream input   = SentmailAttachFile.class.getResourceAsStream("/Sendmail.properties");
                prop.load(input);

String receiver  = prop.getProperty("MAILADDRESS");
String mailCC        = prop.getProperty("MAILCC"); 

Properties props = new Properties();
    props.put("mail.smtp.host" , host);
    props.put("mail.smtp.auth" , "true" );
    props.put("mail.transport.protocol", "smtp");
    Session ss     = Session.getInstance(props,null);
    MimeMessage ms = new MimeMessage(ss);
    ms.addRecipient(Message.RecipientType.TO,new InternetAddress(receiver));
    ms.addRecipient(Message.RecipientType.CC, new InternetAddress(mailCC));

答案 3 :(得分:-1)

抱歉,我通过以下方式解决了问题:

    transport.connect();
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();

我不知道有一个功能:message.getAllrecipients()因为我试图使用其他编码。我认为问题已经解决了。