Ответ 1
Gmail не позволяет вам изменять FROM на нечто иное, чем ваша учетная запись 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 перезаписывает адрес с исходными учетными данными.
Gmail не позволяет вам изменять FROM на нечто иное, чем ваша учетная запись gmail.
Неважно, что вы используете, они переписывают его, прежде чем они передадут его. Это предотвращает спам/спуфинг.
Это решение:
Это работает для меня
Да просто используйте свойство From MailMessage
например.
mail.From = "[email protected]";
EDIT. Также см. этот пост для получения более подробной информации о том, как отправлять электронную почту через gmail в С#
Отправка электронной почты в .NET через Gmail
EDIT: Хотя это работает для почты в целом, похоже, что это не будет работать для gmail, поскольку google перезаписывает ее перед ее отправкой (см. @Dave wanta ответ)
Если у вас есть ограниченное количество отправителей, вы можете сделать это, как предположил @philip. Например, у вас могут быть [email protected]
, [email protected]
и [email protected]
или даже [email protected]
. Пока они утверждены отправителями на фактическом веб-сайте 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