SMTP可以接受发件人姓名错误的电子邮件

时间:2010-11-10 08:53:09

标签: c# smtp smtp-auth

我正在使用SMTPClient向SMTP服务器发送电子邮件。但是使用Send方法,我可以指定任何错误的发件人姓名或电子邮件。我该如何防止这种情况?

4 个答案:

答案 0 :(得分:5)

您的邮件服务器的工作是决定它接受的发件人电子邮件地址 - 这只是政策问题。

邮件客户端没有“真实”的电子邮件地址,因此客户端无法执行任何操作。

答案 1 :(得分:2)

我认为应该是SMTP服务器的角色来决定发件人名称是否有效。实际上,在您的代码中引入它是违反DRY规则的,因为您要复制SMTP配置。

正如您在http://msdn.microsoft.com/en-us/library/swas0fwc%28v=VS.90%29.aspx中所看到的,您应该只准备捕捉SmtpExceptions并将其正确显示给您的软件用户。

答案 2 :(得分:0)

您无法在SmtpClient中执行任何操作。

您可以在应用程序中执行某些操作。发送用户必须点击的验证邮件以验证其电子邮件。

您可以在smtp服务器上执行某些操作。根据发件人域/ IP地址检查MX记录或定义的SPF策略。

答案 3 :(得分:0)

SMTP是一种邮件传输协议(顾名思义)。它不负责验证发件人。要对发件人进行身份验证,您需要使用SMTP支持的证书,但同样,只需要作为transfert的意思。程序本身需要具有使用证书对发件人进行身份验证的逻辑。

您也可以使用身份验证,但在这种情况下,它将是将用户名/密码与电子邮件地址匹配的SMTP服务器。