gpt4 book ai didi

c# - SMTP 中的传递通知

转载 作者:可可西里 更新时间:2023-11-01 08:24:33 27 4
gpt4 key购买 nike

下面的代码工作正常。但是,我需要向特定地址 (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);

最佳答案

简短的回答是您所要求的不能以您假设的直接方式完成。

这仅在特定条件下有效。最容易描述的是,如果您用来发送邮件的 SMTP 服务器与托管收件人电子邮件的域的服务器相同(您在设置 smtpClient 的 .HOST 属性时所指的服务器)。因此,如果您只向本地 SMTP 邮件服务器上的收件人发送邮件,那么这可能会非常可靠。但这取决于所使用的特定 SMTP 服务器软件,还可能取决于它的配置方式。

要解释为什么会这样,您必须意识到只有最后一个接收实际托管所需电子邮件地址的邮件的 SMTP 邮件服务器才能权威地回答这个问题,这是一个有效的电子邮件地址。如果消息在到达这个最终权威服务器的途中必须通过任何其他电子邮件服务器,则消息必须按顺序从一个服务器传递到链中的下一个服务器,直到它到达那个最终权威服务器。这意味着不存在用于验证特定地址的保证方法。再加上一些域被配置为充当黑洞并吞下非法地址邮件这一事实,您会发现有很多原因导致您不能依赖该方法。

因此,许多发送到外部域的邮件将不得不至少到达一个单独的 SMTP 服务器,并且根据该服务器如何回答或转发邮件,它将确定任何特定接收域的结果。事实上,监控退回邮件的发件人地址也不是万无一失的,因为我之前曾评论过一些主机将一些看起来无效的邮件放入黑洞。

关于c# - SMTP 中的传递通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12793790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com