我正在尝试使用以下代码发送电子邮件并获取上述错误。
有两封电子邮件正在发送,第一封电子邮件似乎已正常送达,下面的代码似乎无效。
有人可以帮忙吗?
using (var mail = new MailMessage(fromEmail.Trim(), ToEmail.Trim()))
{
mail.IsBodyHtml = true;
bodyText = bodyText.Replace("**Message**", Message);
// populate the message
mail.Subject = subject;
mail.Body = bodyText;
// send it
var smtpClient = new SmtpClient();
smtpClient.Send(mail);
}
配置:
<system.net>
<mailSettings>
<smtp from="test@foo.com">
<network defaultCredentials="true" port="25" host="127.0.0.1" password="" userName=""/>
</smtp>
</mailSettings>
</system.net>
答案 0 :(得分:3)
而不是将MailMessage
作为using
块的主题,请尝试将SmtpClient
作为主题。
编辑: 如果你的.net版本是&lt; 4.0,您需要进行一些操作以确保在尝试发送另一条消息之前处理smtp客户端。
假设using
块也代表实例方法的主体,那么天真的测试可能是:
设置reference = null(换句话说,确保实际上已经标记/处理了SmtpClient。您可能需要/需要手动处理该实例作为进一步检查)
Jeff Tucker建议您将SmtpClient.Timeout
值设置为2
- 请参阅他对此的评论。
在此之后(假设有效),您可以迭代这些步骤来优化和缩小逻辑,直到您对它满意为止。