Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在使用SmtpClient';什么是SendAsync方法?_C#_.net_Email - Fatal编程技术网

C# 如何在使用SmtpClient';什么是SendAsync方法?

C# 如何在使用SmtpClient';什么是SendAsync方法?,c#,.net,email,C#,.net,Email,SmtpClient类的Send方法定义了5个异常: 无参数异常 无效手术 ObjectDisposedException SmtpException SmtpFailedRecipientsException异常 SendAsync方法定义了4个异常: 无参数异常 无效手术 ObjectDisposedException SmtpException 那么,当我使用SendAsync时,如何捕获SMTPFailedRecipientSexException 我试过了,我用了一些错误的电子邮件地址

SmtpClient类的Send方法定义了5个异常:

无参数异常 无效手术 ObjectDisposedException SmtpException SmtpFailedRecipientsException异常

SendAsync方法定义了4个异常:

无参数异常 无效手术 ObjectDisposedException SmtpException

那么,当我使用SendAsync时,如何捕获SMTPFailedRecipientSexException

我试过了,我用了一些错误的电子邮件地址来测试,但我没能抓住
SmtpFailedRecipientsException当我使用SendAsync时发生异常如果要检测收件人错误,必须使用一种机制,在异步操作完成时发出通知。由于
SendAsync()
在完成之前返回,并且不返回任何状态,因此它显然不可能报告任何类似的错误

在我看来,处理这个问题的最好方法是使用
SendMailAsync()
。使用该方法,您将在
await
表达式中使用它,
await
将导致在操作失败时在代码中的该位置引发异常


如果不想使用
SendMailAsync()
,则必须订阅
SmtpClient.sendpompleted
事件,然后在调用处理程序时,检查
AsyncCompletedEventArgs.Error
属性(如果没有错误,则返回
异常
引用或
null
)若要查看是否发生了错误,以及如果发生了错误,错误是什么。

若要检测收件人错误,必须使用一种机制,在异步操作完成时发出通知。由于
SendAsync()
在完成之前返回,并且不返回任何状态,因此它显然不可能报告任何类似的错误

在我看来,处理这个问题的最好方法是使用
SendMailAsync()
。使用该方法,您将在
await
表达式中使用它,
await
将导致在操作失败时在代码中的该位置引发异常


如果不想使用
SendMailAsync()
,则必须订阅
SmtpClient.sendpompleted
事件,然后在调用处理程序时,检查
AsyncCompletedEventArgs.Error
属性(如果没有错误,则返回
异常
引用或
null
)要查看是否发生了错误,以及如果发生了错误,错误是什么。

我希望您不会捕获它,而是检查传递给SendCompleted事件处理程序的AsyncCompletedEventArgs参数的error属性。。。因为它是异步的,所以在发送完成之前无法报告失败的收件人。我希望您不会捕获它,而是检查传递给SendCompleted事件处理程序的AsyncCompletedEventArgs参数的错误属性。。。因为它是异步的,所以在发送完成之前无法报告失败的收件人。