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