изменить адрес отправителя при отправке почты через gmail в c # - PullRequest
24 голосов
/ 06 октября 2010

Я использовал следующий код для отправки почты из моего веб-приложения с использованием учетной записи 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 ]

36 голосов
/ 04 января 2012

Это решение:

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

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

32 голосов
/ 06 октября 2010

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

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

5 голосов
/ 06 октября 2010

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

например.

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

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

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

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

2 голосов
/ 08 июля 2013

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

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

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

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

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

1 голос
/ 19 марта 2014

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

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