mse*_*dio 6 c# smtp system.net.mail smtpclient mailmessage
当我使用System.Net.Mail发送邮件时,似乎邮件不会立即发送.他们在到达我的收件箱之前需要一两分钟.一旦我退出应用程序,所有消息都会在几秒钟内收到.是否有某种邮件消息缓冲区设置可以强制SmtpClient立即发送消息?
public static void SendMessage(string smtpServer, string mailFrom, string mailFromDisplayName, string[] mailTo, string[] mailCc, string subject, string body)
{
try
{
string to = mailTo != null ? string.Join(",", mailTo) : null;
string cc = mailCc != null ? string.Join(",", mailCc) : null;
MailMessage mail = new MailMessage();
SmtpClient client = new SmtpClient(smtpServer);
mail.From = new MailAddress(mailFrom, mailFromDisplayName);
mail.To.Add(to);
if (cc != null)
{
mail.CC.Add(cc);
}
mail.Subject = subject;
mail.Body = body.Replace(Environment.NewLine, "<BR>");
mail.IsBodyHtml = true;
client.Send(mail);
}
catch (Exception ex)
{
logger.Error("Failure sending email.", ex);
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
标记
O. *_*nes 10
试试这个,如果你使用的是Dotnet 4.0
using (SmtpClient client = new SmtpClient(smtpServer))
{
MailMessage mail = new MailMessage();
// your code here.
client.Send(mail);
}
Run Code Online (Sandbox Code Playgroud)
这将处理您的client实例,使其使用QUIT协议元素包装其SMTP会话.
如果您遇到早期的dotnet版本,请尝试安排为程序发送的每条消息重复使用相同的SmtpClient实例.
当然,请记住,电子邮件本质上是一个存储转发系统,并且没有任何关于从smtp SEND到接收的延迟同步(甚至可以正式预测).
| 归档时间: |
|
| 查看次数: |
7958 次 |
| 最近记录: |