Ответ на адрес электронной почты не работает - PullRequest
1 голос
/ 06 января 2012

Я пытаюсь отправить адрес электронной почты в своем заявлении как кто-то (электронное письмо должно отображаться так, как если бы оно было отправлено с этого адреса), но каждый раз, когда я отправляю электронное письмо, имя отображается так, как я его указал, но неважно, что я делаю, адрес электронной почты это то, что я использую для аутентификации.

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

Вот что у меня есть ...

        using (var message = new MailMessage()
        {
            From = From != new MailAddress(From.Email, From.FormalName),
            Subject = Subject,
            Body = Body
        })
        {
            if (To != null)
            {
                foreach (var address in To)
                {
                    message.To.Add(new MailAddress(address.Email, address.FormalName));
                }
            }
            if (CC != null)
            {
                foreach (var address in CC)
                {
                    message.CC.Add(new MailAddress(address.Email, address.FormalName));
                }
            }
            var smtp = new SmtpClient
            {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential("myaccount", "mypassword")
            };
            message.IsBodyHtml = true;
            message.Headers.Add("Reply-To", message.From.Address);
            smtp.Send(message);
        }

Ответы [ 2 ]

0 голосов
/ 06 января 2012

Лучшая практика при отправке автоматических электронных писем от конкретного пользователя - использовать синтаксис «от имени» (ReplyTo или Sender в MailMessage) в сочетании с адресом «от» из вашей системы. См. Отправка «от имени» электронных писем.

однако вы можете поместить адрес прямо из строки, если ваш почтовый сервер его поддерживает, а принимающий почтовый сервер не выполняет обратный поиск

0 голосов
/ 06 января 2012

Похоже, вы ожидаете, что заголовок Reply-To: покажет, от кого получено сообщение. На самом деле, для этой цели существует заголовок From:. Так что попробуйте:

  message.Headers.Add("From", message.From.Address);

Обратите внимание, что Gmail, вероятно, добавит заголовок Sender: (который может или не может быть показан почтовым клиентом получателя), который отражает фактическую учетную запись, которую вы использовали для отправки сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...