Изменить адрес отправителя при отправке почты через 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.
Неважно, что вы используете, они перезаписывают это, прежде чем включить его. Это предотвращает спам / спуфинг.
Это решение:
- используйте коды выше для установки mail.From = новый MailAddress(адрес, отображаемое имя)
- в Gmail зайдите в Настройки почты >> Учетные записи и импорт.
- Добавьте учетную запись электронной почты, которую вы будете использовать в качестве отправителя в "Отправить почту как". (отметьте как 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