【问题标题】:Operation has timed out - SMTP Mail - Multiple recipients操作已超时 - SMTP 邮件 - 多个收件人
【发布时间】:2013-07-10 20:10:05
【问题描述】:

这是我的场景: 我正在尝试使用 SMTP 客户端发送邮件,当我尝试将邮件发送给最多 3 个收件人时,效果很好,但是当收件人数量高于 3 时,它会返回“操作已超时”。

 MailMessage mail = new MailMessage();
 SmtpClient smtpServer;
 if ((smtpPort != null) && (smtpPort != string.Empty))
        smtpServer = new SmtpClient(smtpAddress, getInt(smtpPort,25));
            else
                            smtpServer = new SmtpClient(smtpAddress);
                        mail.From = new System.Net.Mail.MailAddress(senderAddress, senderName);
                        if (null != to)
                            foreach (string toElement in to)
                                mail.To.Add(toElement);
                        if (null != cc)
                            foreach (string ccElement in cc)
                                mail.CC.Add(ccElement);
                        if (null != bcc)
                            foreach (string bccElement in bcc)
                                mail.Bcc.Add(bccElement);
                        mail.Subject = subjectString;
                        mail.Body = message;

                        if (mailFilename != null)
                        {
                            System.Net.Mail.Attachment attachment;
                            foreach (string path in mailFilename)
                                if (System.IO.File.Exists(eMailPath.Replace("timestamp", path) + path + ".eml"))
                                {
                                    attachment = new System.Net.Mail.Attachment(eMailPath.Replace("timestamp", path) + path + ".eml");
                                    mail.Attachments.Add(attachment);
                                }
                        }
                        smtpServer.Send(mail);
     }

问题 我可以拆分发送,以便多个收件人可以看到其他收件人,就好像发送是一个收件人一样?

示例

收件人列表:a@dom.it、b@dom.it、c@dom.it、mailingList@dom.it --> 邮件列表由 4 个收件人组成。

原始发送:至:mailingList@dom.it 抄送:a@dom.it,b@do​​m.it 密件抄送:c@dom.it

我想拆分发送,以便各个收件人可以看到其他收件人,就像原始发送一样。

【问题讨论】:

  • 您能否命名您的程序与之通信的 SMTP 服务器? (Sendmail/Postfix/MS Exchange/...)
  • 不知道用的是哪个守护进程,因为服务器不公开..

标签: c# smtp sendmail smtpclient


【解决方案1】:

我没有看到您在 SMTPClient 对象上设置 .Host 属性的任何地方。所以,默认情况下它可能通过本地 SMTP 服务器发送出去,我猜你可能在这个本地 SMTP 服务器上遇到了一些限制,或者它正在节流,或者类似的东西。也许使用 .Host 属性通过其他一些 SMTP 服务器(例如 smtp.gmail.com)路由这些传出消息可能会解决问题。

【讨论】:

  • 我在第四行代码中使用“smtpAddress”变量初始化主机。 @mti2935
  • 好的,我明白你在说什么了。因此,您正在指定用于发送这些的 SMTP 服务器的地址。我想知道您是否尝试通过不同的 SMTP 服务器发送这些信息,如果这样可以解决问题。如果您有 gmail 帐户,您甚至可以尝试通过 gmail smtp 服务器 (smtp.gmail.com) 发送这些内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 2015-12-09
  • 2019-07-30
  • 2015-10-15
  • 2011-11-15
相关资源
最近更新 更多