【问题标题】:Email Support section with the users address as "From address"电子邮件支持部分,用户地址为“发件人地址”
【发布时间】:2013-07-18 12:58:25
【问题描述】:

我需要在我们的应用程序中实现“电子邮件支持”部分。因此,电子邮件“收件人”地址将是 admin@mydomain.com”,发件人地址将是最终用户的电子邮件地址。(最终用户的电子邮件地址可能位于同一域或另一个域,例如 user@mydomain.com 或 user @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);

【问题讨论】:

    标签: c# asp.net wpf email smtp


    【解决方案1】:

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

    但是您从 SMTP 服务器收到的消息几乎说明了一切。如果消息是“来自”该用户的,则 SMTP 服务器会拒绝它,因为它对身份验证和电子邮件的来源很敏感。对于 SMTP 服务器(对于我想像的任何 SMTP 服务器),您似乎在尝试欺骗消息。

    【讨论】:

    • 很高兴看到您对usersystem 在这种情况下应该扮演的角色有相同的解释。 :-)
    • @KarlAnderson:同意。我经常看到人们试图从审计跟踪中删除该软件,并让它看起来像是用户直接在做所有事情,但事实并非如此。 (publicvoidlife.blogspot.com/2012/05/…) 应用程序本身就是后端服务的用户,应该这样对待。
    【解决方案2】:

    您不能做您正在做的事情,因为 SMTP 服务器不允许您“冒充”用户的电子邮件地址以发送到系统。谢天谢地,情况就是这样,否则人们会以别人的名义发送垃圾邮件/欺骗所有人。

    您为什么要让用户看起来像是在向应用程序发送电子邮件?为什么不只是在您的应用程序中设置一个支持部分,用户可以在其中向系统“提交”支持请求,然后如果您想向用户发送电子邮件,那么您的方案将起作用,但正好相反(系统所在的位置) From 地址和用户是To 地址)。

    【讨论】:

      【解决方案3】:

      我使用 Golang,我会在消息中添加“发件人”

      msg := []byte(
          "From: root@myserver.com.br\r\n" +
          "To: destiny@myserver.com\r\n" +
          "cc: destiny2@myservercom\r\n" +
          "Subject: Why are you not using Mailtrap yet?\r\n"+
          "\r\n"+
          "Here’s the space for our great sales pitch\r\n")
      
      auth := smtp.PlainAuth("", root, password, host)
      err := smtp.SendMail(address, auth, root, destinationEmail, msg)
      

      【讨论】:

        猜你喜欢
        • 2011-02-14
        • 2013-08-10
        • 2017-07-23
        • 2017-07-21
        • 2012-05-25
        • 1970-01-01
        • 1970-01-01
        • 2018-03-06
        • 1970-01-01
        相关资源
        最近更新 更多