Изменить адрес отправителя при отправке почты через g mail в C#

Я использовал следующий код для отправки почты из моего веб-приложения с использованием учетной записи Gmail. У меня вопрос, могу ли я изменить адрес отправителя на другой, отличный от исходного адреса отправителя (gmail)? Мой код выглядит следующим образом:

System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("sample@gmail.com", "*******");

Все, что я делаю, бесполезно, так как я всегда получаю почту от sample@gmail.com, Можно ли это изменить?

Я изменился на mail.From = new System.Net.Mail.MailAddress("sample@yahoo.com"); но я получил письмо с адресом от sample@gmail.com а не с нового адреса "От". Я думаю, что Gmail SMTP перезаписывает адрес отправителя с оригинальными учетными данными.

5 ответов

Решение

Gmail не позволяет вам изменить FROM на что-то другое, чем ваша учетная запись Gmail.

Неважно, что вы используете, они перезаписывают это, прежде чем включить его. Это предотвращает спам / спуфинг.

Это решение:

  1. используйте коды выше для установки mail.From = новый MailAddress(адрес, отображаемое имя)
  2. в Gmail зайдите в Настройки почты >> Учетные записи и импорт.
  3. Добавьте учетную запись электронной почты, которую вы будете использовать в качестве отправителя в "Отправить почту как". (отметьте как Alias)

Это работает для меня

Да, просто используйте свойство From в MailMessage

например.

mail.From = "newemail@email.com";

РЕДАКТИРОВАТЬ: Кроме того, см. Этот пост для получения более подробной информации о том, как по электронной почте через Gmail в C#

Отправка электронной почты в.NET через Gmail

РЕДАКТИРОВАТЬ: Хотя это работает для почты в целом, похоже, что это не будет работать для Gmail, так как Google перезаписывает его перед отправкой (см. Ответ @Dave wanta)

Если у вас ограниченное количество отправителей, вы можете сделать так, как предложил @philip. Например, вы можете иметь customerservice@example.com, simon@example.com а также philip@example.com или даже alias@example.com, Пока они являются утвержденными отправителями на фактическом gmail.com сайт вы можете отправить с них.

Gmail.com: отправка почты с другого адреса

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

        msg.ReplyToList.Add(new System.Net.Mail.MailAddress(email, friendlyName));

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

Проверьте № 56 и № 58. Они могут иметь отношение к тому, что вы хотите сделать, https://code.google.com/p/google-apps-script-issues/issues/detail?id=172

Другие вопросы по тегам