电子邮件支持部分,用户地址为“发件人地址”

时间:2013-07-18 12:58:26

标签: c# asp.net wpf email smtp

我需要在我们的应用程序中实现“电子邮件支持”部分。因此,电子邮件“收件人”地址将为admin@mydomain.com“,并且地址将是最终用户的电子邮件地址。(最终用户的电子邮件地址可能位于同一个域或其他域,如user@mydomain.com或用户@ gmail.com)。

在应用程序中,我使用管理员帐户详细信息(用户名和密码)验证了电子邮件

System.Net.NetworkCredential("admin@mydomain.com", adminpassword);

我也使用主机地址作为“mail.mydomain.com” 问题是我收到以下错误:

  

“邮箱不可用。服务器响应是:来自地址必须   匹配经过身份验证的地址“错误消息。

是否可以发送包含正确发件人电子邮件地址的电子邮件(来自地址的用户)

我的代码示例是

message.To.Add(“admin@mydomain.com”);
message.From = new MailAddress(“test@gmail.com”);
message.IsBodyHtml = true;
message.BodyEncoding = Encoding.UTF8;
var smtp = new SmtpClient("mail.mydomain.com");
smtp.Credentials = new System.Net.NetworkCredential(admin@mydomain.com, adminpassword);
smtp.EnableSsl = false;
object usrtkn = message;
smtp.Send(message);

2 个答案:

答案 0 :(得分:1)

一般来说,From地址不应该是用户自己,它应该是一个内部系统地址。这主要是因为用户实际上没有发送电子邮件,应用程序。在电子邮件中,您可以指定发送给它的用户(以及他们的电子邮件地址)。您甚至可以在邮件的the ReplyTo field中指定用户的电子邮件地址。

但是你从SMTP服务器获得的消息几乎就是这么说的。如果邮件是“来自”该用户,则SMTP服务器拒绝它,因为它对身份验证和电子邮件的发起敏感。对于SMTP服务器(对于我想象的任何SMTP服务器),它看起来像是在试图欺骗消息。

答案 1 :(得分:0)

您无法执行您正在执行的操作,因为SMTP服务器不允许您“模拟”用户的电子邮件地址以便发送到系统。谢天谢地,情况就是如此,否则人们会以别人的名义发出垃圾邮件/欺骗所有人。

为什么要让用户看到用户正在向应用发送电子邮件?为什么不只是在应用程序的支持部分,用户可以“提交”对系统的支持请求,然后如果要向用户发送电子邮件,那么您的方案将起作用,但反过来(系统是From地址和用户是To地址。

相关问题