0

SMTPClient用于将电子邮件发送到 SMTP 服务器。但是通过Send方法,我可以指定任何虚假的发件人姓名或电子邮件。我怎样才能防止这种情况?

4

4 回答 4

5

邮件服务器的工作是决定它接受什么作为发件人电子邮件地址——这只是一个政策问题。

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

于 2010-11-10T08:58:44.380 回答
2

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

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

于 2010-11-10T08:59:11.493 回答
0

你不能在 SmtpClient 中做任何事情。

你可以在你的应用程序中做一些事情。发送用户必须单击以验证其电子邮件的验证电子邮件。

你可以在你的 smtp 服务器上做一些事情。根据发件人域/IP 地址检查 MX 记录或定义的 SPF 策略。

于 2010-11-10T09:06:50.617 回答
0

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

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

于 2010-11-10T10:25:25.253 回答