Как проверить отправителя входящего адреса электронной почты в Google App Engine?

StackOverflow https://stackoverflow.com/questions/1840858

Вопрос

Я пытаюсь написать приложение, основанное на электронной почте, в Python SDK Google App Engine.Я заметил, что Google позволяет получать электронную почту через свой API, и что он легко дает вам доступ к стандартным полям, таким как «От», «Кому», «Тело» и т. д.Однако, если я пытаюсь проверить, что адрес электронной почты пришел от того, от кого он был указан (вроде того, как Posterous делает это за вас), как я могу?У меня нет доступа ни к одному из заголовков электронной почты, поэтому я не могу проверить MX-запись IP-адреса отправляющего сервера или что-то в этом роде.

Есть идеи?

Это было полезно?

Решение

На самом деле, хотя и не очень хорошо документированы, источники здесь предложите, чтобы исходное пантомимическое сообщение, из которого формируются удобные предметы, которые вы получаете, было доступно в виде .original свойство удобного объекта — это экземпляр электронная почта.message.Сообщение, поэтому вы сможете получать оттуда заголовки электронных писем.Однако я не уверен, что это продвинет вас дальше в поисках подтверждения.

Другие советы

Электронная почта обычно не является проверяемым средством передачи, если вы не подписываете ее с помощью PGP или S/MIME.Если у вас нет заголовков, вам нечего проверять.

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

Или вы можете попросить пользователя вставлять пароль в каждое сообщение.

Алекс прав насчет доступа к заголовкам, но это не позволяет вам проверить фактического отправителя электронного письма:Любой может отправить электронное письмо с любым адресом отправителя, который пожелает, поэтому не полагайтесь на адрес отправителя как на достоверное доказательство того, кто его отправил.

Если это часть процесса регистрации или что-то в этом роде, то почему бы вам не отправить обратно «вызов» (например,URL-адрес для продолжения регистрации или чего-то еще, с уникальным ключом с привязкой ко времени) (предположительно) отправителю?Таким образом, вы сможете проверить, не подделан ли адрес электронной почты.

«Большие парни» (напр.Google) часто используют этот процесс, должна быть причина.

Не обращайте внимания на мое предложение, если оно не соответствует вашему варианту использования.


Обновлено:вы могли бы передать электронные письма через другую веб-службу (будет определено) прежде, чем они попадут в ваше приложение GAE?Таким образом, вы все равно можете использовать GAE, одновременно выполняя работу с низкими накладными расходами на обработку, такую ​​​​как проверка электронной почты, где-то еще?

Проверить отправителя можно только с помощью DKIM.GAE автоматически подписывает электронные письма учетных записей Google с помощью DKIM, но вам нужна внешняя служба (доступ к которой должен быть через http/https) для запроса DNS и предоставления вам полей DNS txt.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top