下面的代码工作正常.但是我需要将失败或成功通知发送到特定地址(b@technospine.com).但是我收到了送货通知邮件到FromMail地址(A@technospine.com).你能帮我解决这个问题吗?
SmtpClient smtpClient = new SmtpClient();
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress("A@technospine.com", "BALA");
MailAddress adminAddress = new MailAddress("b@technospine.com");
smtpClient.Host = "Mail Server Name";
smtpClient.Port = 25;
smtpClient.UseDefaultCredentials = true;
message.From = fromAddress;
message.To.Add(_sendTo); //Recipent email
message.Subject = _subject;
message.Body = _details;
message.IsBodyHtml = true;
message.Headers.Add("Disposition-Notification-To", "b@technospine.com");
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
message.ReplyTo = adminAddress;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Send(message);
Run Code Online (Sandbox Code Playgroud)
dma*_*tta 12
简短的回答是你所要求的不能以你所假设的直接方式完成.
这只适用于某些条件.最容易描述的是,如果您用来发送邮件的SMTP服务器与承载收件人电子邮件域的服务器(设置smtpClient的.HOST属性时引用的服务器)相同.因此,如果您只是发送给本地SMTP邮件服务器上的收件人,那么这可能非常可靠.但这取决于所使用的特定SMTP服务器软件,也可能取决于它的配置方式.
要解释原因,您必须意识到只有最后一个接收实际托管所需电子邮件地址的邮件的SMTP邮件服务器才能权威地回答问题,这是一个有效的电子邮件地址.如果消息必须通过任何其他电子邮件服务器来获取此最终权威服务器,则必须将消息从一个服务器顺序切换到链中的下一个服务器,直到它到达最终的权威服务器.这意味着没有可靠的方法来验证特定地址.再加上一些域被配置为黑洞并吞下非法处理邮件的事实,您可以看到有很多原因导致您无法依赖该方法.
因此,许多到外部域的邮件必须至少打到一个单独的SMTP服务器,并且根据服务器如何回复或转发邮件,它将确定任何特定接收域的结果.实际上,监视反弹消息的FROM地址并不是万无一失的,因为我之前关于某些主机将某些消息放入黑洞的评论如果看起来没有效果.
根据MSDN, .Send 将抛出SmtpFailedRecipientsException编辑:如果消息无法传递给一个或多个收件人。您可以在异常的“失败的收件人”属性中找到有关哪一个的信息。因此,如果您尝试捕获该异常并验证您在异常中查找的地址,这可能会有所帮助。
| 归档时间: |
|
| 查看次数: |
17075 次 |
| 最近记录: |