【问题标题】:C# change e-mail 'from' address to a user-provided oneC# 将电子邮件“发件人”地址更改为用户提供的地址
【发布时间】:2011-02-14 07:00:15
【问题描述】:

我们有一个应用程序允许用户从我们的系统发送电子邮件。它允许用户指定他们的电子邮件地址,并为他们提供了几个标准模板作为他们电子邮件的起点。

当我们发送电子邮件时,我们使用他们提供的地址作为“回复”,但电子邮件的“发件人”地址(自然)看起来像我们的系统(来自 'submit@ourserver. com')。

有没有一种方法可以在不被垃圾邮件过滤器或自动阻止的情况下改变这一点?我们不想让收件人混淆他们收到的电子邮件究竟是谁撰写的。

【问题讨论】:

    标签: c# email-spam email


    【解决方案1】:

    我将向您推荐 Jeff Atwood 关于以编程方式发送电子邮件的 Coding Horror 文章。它详细描述了您应该采取的步骤,以防止您的电子邮件被垃圾邮件过滤器等捕获......

    Jeff Atwood's Coding Horror: So You'd Like to Send Some Email (Through Code)

    【讨论】:

    • 感谢您的链接(我们已经完成了所有这些),但它没有回答我提出的问题。
    • 你有代码示例吗?我解释了这个问题,因为您想知道更改发件人是否会使您的电子邮件被丢弃。
    【解决方案2】:

    我使用这个代码:

    public static bool sendEmail(string fromName, string fromEmail, string body, string subject, string toEmail) {
    
        String strReplyTo = fromEmail.Trim();
        String strTo = toEmail;
        String msgBodyTop = "Email from: " + @fromName + "(" + @fromEmail + ")\n"
                + "" + " " + DateTime.Now.ToLongTimeString()
                + " FROM " + HttpContext.Current.Request.Url.ToString + " : \n\n"
                + "---\n";
    
        MailMessage theMail = new MailMessage(fromEmail, strTo, subject, msgBodyTop + body);
    
        theMail.From = new MailAddress(strReplyTo, fromName);
    
        SmtpClient theClient = new SmtpClient(ConfigurationManager.AppSettings["SMTP"].ToString());
    
        theClient.Send(theMail);
    
        return true;
    }
    

    它似乎对我有用......

    【讨论】:

    • 您不会遇到触发垃圾邮件过滤器、欺骗“发件人”地址这样的问题吗?
    • 说实话,我真的没遇到过问题。不过,我也不会进行群发邮件。
    【解决方案3】:

    在与我们的运维人员讨论并尝试了 Atomiton 的方法后,我发现这对我们来说实际上是不可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多