Csharp/C#教程:在SendComplete中配置SmtpClient?分享


在SendComplete中配置SmtpClient?

当我使用SmtpClient的SendAsync发送电子邮件时,如何正确配置smtpclient实例?

让我们说:

 MailMessage mail = new System.Net.Mail.MailMessage() { Body = MailBody.ToString(), IsBodyHtml = true, From = new MailAddress(FromEmail, FromEmailTitle), Subject = MailSubject }; mail.To.Add(new MailAddress(i.Email, "")); SmtpClient sc = new SmtpClient(SmtpServerAddress); //Add SendAsyncCallback to SendCompleted sc.SendCompleted += new SendCompletedEventHandler(SendAsyncCallback); //using SmtpClient to make async send (Should I pass sc or mail into SendAsyncCallback?) sc.SendAsync(mail, sc); 

SendAsyncCallback方法中,我应该调用sc.Dispose()还是mail.Dispose()

我检查了MSDN文件,一个例子调用了MailMessage.Dispose(),但是这个dispose方法还会配置SmtpClient实例吗?

非常感谢。

您应该在SendAsyncCallback配置MailMessageSmtpClient

处置MailMessage不会自动处理SmtpClient(因为您可能希望使用相同的SmtpClient发送两条消息,并且您不希望在丢弃第一条消息后立即处理客户端)。

这个例子:从MSDN Library文档中只关闭Message,所以我将在我的实现中使用它: SmtpClient.SendAsync方法

 message.Dispose(); 

我遇到了这个问题中提到的问题,其中发送始终被取消,所以我删除了我的using {}语句: SmtpClient.SendAsync调用自动取消

好吧,我只是尝试发出message.Dispose(),甚至因为消息被处理而抛出错误,说它无法发送电子邮件。 可能是因为我的是一个asp.net mvc应用程序,该示例是一个控制台应用程序。 无论如何,一旦一切都超出范围,垃圾收集器应该选择这些选项……

上述就是C#学习教程:在SendComplete中配置SmtpClient?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1011878.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐