Как отправить электронное письмо в GAE от имени пользователя Yahoo, Hotmail или .edu? - PullRequest
3 голосов
/ 07 мая 2011

В GAE пользователь, не являющийся Gmail, может создать учетную запись Google, используя свою электронную почту, не относящуюся к Gmail, и войти в приложение Google App Engine.Тем не менее, отправка с этого электронного письма, кажется, не работает все время.

Например, предположим, что foobar@yahoo.com создает учетную запись Google и входит в систему. Затем GAE должен иметь возможность отправлять электронную почту с foobar@yahoo.com во время запроса пользователя.

Проблема в том, что это не работает для учетных записей электронной почты Yahoo и других.По моему опыту, только следующие пользователи могут отправлять электронную почту от своего имени:

  • В настоящее время зарегистрировано gmail users
  • В настоящее время зарегистрировано пользователей с электронные письма, которые запускаются в приложениях Google
  • Администраторы

Однако вы не можете отправлять электронные письма от имени пользователей со следующим адресом электронной почты:

  • пользователи Yahoo и Hotmail
  • .gov или .mil пользователи
  • большинство пользователей .edu, хотя я думаю, что некоторые школы используют приложения Google, и они работают.

Если я отправляю с этих адресов электронной почты, я получаю следующую ошибку:

   message.send();
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py", line 799, in send
    raise ERROR_MAP[e.application_error](e.error_detail)
InvalidSenderError: Unauthorized sender

Я что-то здесь упускаю?

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

Ответы [ 3 ]

3 голосов
/ 07 мая 2011

Ваше приложение не имеет права отправлять электронные письма с адресов, которые вам не принадлежат.

Это называется спуфингом, и за последние 8 лет было проделано много работы по предотвращению спуфинга: DKIM, SPF ...

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


Обновление:

Аккаунты Google

Учетные записи Google могут быть созданы с использованием адресов электронной почты сторонних доменов (например, hotmail, Yahoo, * .edu и т. Д.). Там будет шаг подтверждения электронной почты, чтобы проверить адрес электронной почты, но не может быть больше отношений, чем это. Адрес электронной почты - это «имя пользователя», и в Google создан пароль, который не имеет ничего общего со сторонним доменом.

В аккаунтах Google не обязательно должен быть компонент почтовой службы. Вы можете создать учетную запись Google и не иметь Gmail.

Электронная почта Google на стороннем домене

Службы Google можно запускать «на» сторонних доменах, это может, но не обязательно, включать электронную почту Google.

Электронная почта Google может быть запущена на любом домене без каких-либо других «приложений», они предлагают аутсорсинг электронной почты, что весьма привлекательно для сектора образования. В этом случае Google является уполномоченным для электронной почты для этого домена.

От имени рассылки

Электронная почта Google имеет функцию настройки электронной почты "От имени". Это требует настройки. Письмо с подтверждением отправлено на целевой аккаунт. После создания электронное письмо отправляется с использованием адреса электронной почты исходной учетной записи в mail envelope, поэтому любые сообщения о состоянии доставки (задержки, отклонения) будут возвращены этой учетной записи. Исходный адрес электронной почты также будет в sender header. Адрес, который вы отправляете от имени, будет указан в from header в сообщениях, но в противном случае, что касается настроек безопасности и проверки, это электронная почта Google от Google.

В результате быстрого поиска были возвращены некоторые веб-сайты технических блогов, которые предполагают, что они рассматривают возможность отказа от этой функции в пользу поддержки сторонних служб SMTP.

Сторонний SMTP-сервер

Таким образом, кто-то может настроить свою учетную запись электронной почты Google с SMTP-сервером, именем пользователя и паролем своего поставщика почтовых услуг и использовать его для отправки электронной почты через почтовый интерфейс Google через действительные серверы своего поставщика почтовых услуг. Следовательно, это электронное письмо действительно будет «исходить» из инфраструктуры этого домена.


Я не читал документацию по этой функции GAE для отправки электронной почты. Однако я вижу, что если кто-то вошел в свою учетную запись Google, и эта учетная запись имеет почтовую службу, то можно было бы отправлять электронную почту из этой учетной записи с помощью API.

Однако Google не будет генерировать электронную почту «От» сторонних доменов, для которых не назначены полномочия. Адрес электронной почты не будет действительным; это было бы "подделано". Он может не соответствовать различным улучшениям безопасности, может использоваться злонамеренно и может привести к дурной славе.

Надеюсь, это прояснит ситуацию для вас.

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

2 голосов
/ 12 мая 2011

Мне кажется, что Google что-то изменил.У меня было приложение, работающее 1,5 года без проблем (и изменений), но внезапно 2011-05-03 перестал отправлять электронные письма, например, от имени пользователей Yahoo.

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

1 голос
/ 07 мая 2011

Если foobar@yahoo.com создаст учетную запись Google и войдет в систему, вы сможете отправлять сообщения от имени пользователя Gmail, но не пользователя Yahoo. То же самое для Hotmail. Что касается .gov, .mil или .edu, в этих TLD нет ничего особенного. Если они являются доменами Служб Google, вы можете отправлять с них, иначе вы не сможете.

Обратите внимание, что вы можете указать адрес для ответа при отправке почты. Это может быть любой адрес электронной почты, поэтому, если вы используете ответный адрес foobar@yahoo.com для исходящей почты и получатель нажимает на ответ, это должен быть адрес, который заполнен получателем.

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