我不确定这是否是提出这个问题的正确位置。但在我的解决方案中,我们遇到了发送邮件的问题。
技术细节: 我telnet smtp-relay并得到回复。
我们会从应用程序发送一些电子邮件,但它确实有效。
过了一会儿消息没有发送,我无法telnet smtp-server。
然后我们需要重新启动服务器,它可以工作一段时间。
发送消息的代码是:
protected virtual void Send(Email mailMessage)
{
using (SmtpClient client = new SmtpClient(this._mailService.SmtpContext.SmtpServer, this._mailService.SmtpContext.SmtpPort))
{
client.EnableSsl = _mailService.SmtpContext.EnableSsl;
if (_mailService.SmtpContext.UseDefaultCredentials)
{
client.UseDefaultCredentials = true;
}
else
{
NetworkCredential credentials = new NetworkCredential(this._mailService.SmtpContext.Username, this._mailService.SmtpContext.Password);
client.Credentials = credentials;
}
client.DeliveryMethod = SmtpDeliveryMethod.Network;
try
{
client.Send(mailMessage);
}
catch (SmtpException e)
{
/// LOG
}
/// Trigger mail sent event
onMailSent(this, mailMessage);
}
}
我想知道是否有人遇到过这样的问题,以及是否存在解决方案。
我们可以看到在netstat中创建了一个连接,但它没有被删除。在smptclient处理中是否存在某种错误?