C # изменить адрес электронной почты 'от' на адрес, предоставленный пользователем

У нас есть приложение, которое позволяет пользователям отправлять электронные письма из нашей системы. Он позволяет пользователю указать свой адрес электронной почты и дает им несколько стандартных шаблонов для использования в качестве отправной точки для своей электронной почты.

Когда мы отправляем электронные письма, мы используем адрес, который они предоставили, в качестве «ответа», но адрес отправителя электронного письма (естественно) выглядит как наша система (от «[email protected]») .

Есть ли способ изменить это, не запутавшись в спам-фильтрах или автоматической блокировке? Мы бы предпочли не вводить получателя в заблуждение относительно того, кто на самом деле составил полученное электронное письмо.


person Jeff    schedule 30.04.2010    source источник


Ответы (3)


Я отсылаю вас к статье Джеффа Этвуда Coding Horror о программной отправке электронной почты. В нем подробно описаны шаги, которые вы должны предпринять, чтобы ваша электронная почта не попала в спам-фильтры и т. Д.

Джеффа Этвуда Coding Horror: значит, вы хотели бы отправить электронное письмо (с помощью кода)

person Aren    schedule 30.04.2010
comment
Спасибо за ссылку (мы все это уже делаем), но она не отвечает на заданный мною вопрос. - person Jeff; 30.04.2010
comment
У вас есть образец кода? Я истолковал вопрос так, как будто вы хотели знать, будет ли выброшено ваше электронное письмо при изменении с. - person Aren; 30.04.2010

Я использую этот код:

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;
}

У меня вроде работает ...

person Armstrongest    schedule 30.04.2010
comment
У вас нет проблем с запуском спам-фильтров, например, с подменой адреса "От"? - person Jeff; 30.04.2010
comment
Если честно, у меня действительно не было проблем. Однако я тоже не занимаюсь массовыми рассылками. - person Armstrongest; 03.05.2010

После обсуждения с нашими оперативниками и опробования метода Atomiton я обнаружил, что это для нас на самом деле невозможно.

person Jeff    schedule 03.05.2010