我有一种方法可以将电子邮件发送到多个电子邮件地址。像这样:
foreach(var email in emails){
// code to create mail variable
var smtp = new SmtpClient();
smtp.SendCompleted += new SendCompletedEventHandler(callBack);
smtp.SendMailAsync(mail);
}
正如预期的那样,每个电子邮件地址都会调用一次回调。回调会在通知客户端弹出成功/错误消息。
我希望在回调中获取电子邮件地址,以便能够使用导致成功/错误的电子邮件指定成功/错误消息。 这是我想要的回调,使用EMAIL变量:
EmailSender.SendAsyncEmailDoneCallBack callBack = (sender, e) => {
if (e.Cancelled)
PushSystemNotification("Message canceled to " + EMAIL, CurrentUser);
if (e.Error != null)
PushSystemNotification("Message not sent to " + EMAIL, CurrentUser);
else
PushSystemNotification("Message sent to " + EMAIL, CurrentUser);
};
那么,有人能告诉我是否可以从此发送回调中获取电子邮件地址?或者是否有其他方法可以提供此功能?
答案 0 :(得分:2)
只需使用SendAsync
(不是SendMailAsync
)
smtp.SendCompleted += (sndr, e) => {
Console.WriteLine(e.UserState);
};
smtp.SendAsync(mail,"test");
它可以是您要传递给 SendCompleted 事件处理程序的任何对象。