代码之家  ›  专栏  ›  技术社区  ›  Jeff

C将电子邮件“从”地址更改为用户提供的地址

  •  2
  • Jeff  · 技术社区  · 14 年前

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

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

    有没有办法在不被垃圾邮件过滤器或自动拦截所困扰的情况下改变这一点?我们不想把收件人和他们收到的电子邮件的作者混淆起来。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Aren    14 年前

    我把你介绍给杰夫·阿特伍德 编码恐怖 关于以编程方式发送电子邮件的文章。它详细描述了您应该采取的步骤,以防止您的电子邮件被垃圾邮件过滤器等抓获…

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

        2
  •  1
  •   Timothy S. Van Haren Prashant    14 年前

    我使用这个代码:

    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
  •  1
  •   Jeff    14 年前

    在和我们的操作人员讨论并尝试了atomiton的方法之后,我发现这对我们来说实际上是不可能的。