C# 操作已超时-SMTP邮件-多个收件人

C# 操作已超时-SMTP邮件-多个收件人,c#,smtp,sendmail,smtpclient,C#,Smtp,Sendmail,Smtpclient,这是我的设想: 我正在尝试使用SMTP客户端发送邮件,当我尝试将邮件发送给最多3个收件人时,效果非常好,但是,当收件人数大于3时,它返回“操作已超时” 问题 我是否可以拆分发送,以便多个收件人可以看到其他收件人,就好像发送是一个收件人一样 示例 收件人名单:a@dom.it, b@dom.it, c@dom.it, mailingList@dom.it --> 邮件列表由4个收件人组成 原件:发送至:mailingList@dom.it复写的副本:a@dom.it,b@dom.it 密件抄送:c

这是我的设想: 我正在尝试使用SMTP客户端发送邮件,当我尝试将邮件发送给最多3个收件人时,效果非常好,但是,当收件人数大于3时,它返回“操作已超时”

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

示例

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

原件:发送至:mailingList@dom.it复写的副本:a@dom.it,b@dom.it 密件抄送:c@dom.it


我希望拆分发送,以便各个收件人可以看到与原始发送相同的其他收件人。

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

您能为程序对话的SMTP服务器命名吗?(Sendmail/Postfix/MS Exchange/…)我不知道使用了哪个守护进程,因为服务器不是公共的..我使用“smtpAddress”变量在第四行代码中初始化主机@好的,我明白你在说什么了。因此,您正在指定用于发送这些邮件的SMTP服务器的地址。我想知道你是否尝试通过不同的SMTP服务器发送这些邮件,如果这样可以解决问题。如果你有gmail帐户,你甚至可以尝试通过gmail smtp服务器(smtp.gmail.com)发送这些邮件。
 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);
     }