Подтвердить что ты не робот

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

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

 System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();


System.Net.NetworkCredential cred = new 
       System.Net.NetworkCredential("[email protected]", "*******");

Что бы я ни делал, бесполезно, поскольку я всегда получаю почту от [email protected]. Можно ли изменить его?

Я изменился на    mail.From = new System.Net.Mail.MailAddress("[email protected]"); но я получил почту с адресом от [email protected], а не с нового адреса "От". Я думаю, что gmail smtp перезаписывает адрес с исходными учетными данными.

4b9b3361

Ответ 1

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

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

Ответ 2

Это решение:

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

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

Ответ 3

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

например.

mail.From = "[email protected]";

EDIT. Также см. этот пост для получения более подробной информации о том, как отправлять электронную почту через gmail в С#

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

EDIT: Хотя это работает для почты в целом, похоже, что это не будет работать для gmail, поскольку google перезаписывает ее перед ее отправкой (см. @Dave wanta ответ)

Ответ 4

Если у вас есть ограниченное количество отправителей, вы можете сделать это, как предположил @philip. Например, у вас могут быть [email protected], [email protected] и [email protected] или даже [email protected]. Пока они утверждены отправителями на фактическом веб-сайте gmail.com, вы можете отправить их.

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

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

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

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