最后一个电子邮件地址发送多封电子邮件失败

时间:2013-12-11 06:48:52

标签: mysql vb.net

我们正面临着VB.net的问题,该问题会自动将带有文本文件附件的电子邮件发送到多个电子邮件地址。 奇怪的是,如果我们发送邮件给2个人,那么第一个人收到电子邮件但不收到第二个。 如果我们添加三个电子邮件地址,则前两个电子邮件地址会收到电子邮件,但第三个电子邮件地址则不收在添加更多电子邮件地址时,它会继续这样做。 此外,在第二次执行脚本时,电子邮件会发送给所有收件人。确切地说,所有收件人仅在交替执行脚本时接收电子邮件。 这与邮件服务器等所用的时间有关吗? 最后,我们为使其工作所做的是为最后一个电子邮件地址运行send email命令两次。我知道这不是一个永久的解决方案。 任何帮助都非常感谢。 提前致谢。

    public void Main()
    {
        SmtpClient client = new SmtpClient("1.1.1.1", 25);

        client.DeliveryMethod = SmtpDeliveryMethod.Network;

        client.Credentials = new NetworkCredential("support", "support");

        MailMessage EM1= new MailMessage("support@domain.com", "user1@domain.com ",
           "This is my subject" + " " + "  ", "Hello,");

        EM1.Attachments.Add(new Attachment(@"F:\WebData\TxtFiles\1.txt"));
        client.Send(EM1);

        Dts.TaskResult = (int)ScriptResults.Success;


        MailMessage EM2 = new MailMessage("support@domain.com", "user2@domain.com",
           "This is my subject" + " " + " ", "Hello,");

        EM2.Attachments.Add(new Attachment(@"F:\WebData\TxtFiles\1.txt"));
        client.Send(EM2);

        Dts.TaskResult = (int)ScriptResults.Success;

        MailMessage EM3 = new MailMessage("support@domain.com", "user3@domain.com",
        "This is my subject" + " " + " ", "Hello,");

        EM3.Attachments.Add(new Attachment(@"F:\WebData\TxtFiles\1.txt"));
        client.Send(EM3);
        client.Send(EM3);

        Dts.TaskResult = (int)ScriptResults.Success;

    }
}

}

1 个答案:

答案 0 :(得分:0)

您应该检查的第一个地方是邮件服务器的日志。他们应该告诉你提交的消息发生了什么(接受/拒绝,下一跳交付等)。

然而,无论如何,多次向不同的收件人发送相同的邮件是不好的做法。这样做是邮件服务器的工作。仅为所有预期收件人提交一次邮件。您可以使用逗号分隔的字符串指定所有收件人:

MailMessage EM = new MailMessage("support@example.com", _
  "user1@example.com,user2@example.com,user3@example.com", _
  "This is my subject", "Hello,");

EM.Attachments.Add(new Attachment(@"F:\WebData\TxtFiles\1.txt"));
client.Send(EM);

或添加其他收件人:

MailMessage EM = new MailMessage("support@example.com", _
  "user1@example.com", "This is my subject", "Hello,");

EM.To.Add("user2@example.com");
EM.To.Add("user3@example.com");

EM.Attachments.Add(new Attachment(@"F:\WebData\TxtFiles\1.txt"));
client.Send(EM);

如果您不希望收件人知道其他收件人,请将邮件发送给默认收件人(例如发件人地址),并将其他收件人添加为BCC地址:

MailMessage EM = new MailMessage("support@example.com", _
  "support@example.com", "This is my subject", "Hello,");

EM.Bcc.Add("user1@example.com");
EM.Bcc.Add("user2@example.com");
EM.Bcc.Add("user3@example.com");

EM.Attachments.Add(new Attachment(@"F:\WebData\TxtFiles\1.txt"));
client.Send(EM);