Я создаю платформу с системой обмена сообщениями.Проверить запрос происхождения и подтвердить отправку отправителя электронной почты - Node.js
Я бы хотел опубликовать сообщения из электронной почты, и для этого я создал маршрут в Mailgun, который перенаправляет электронные письма на мой API.
Эта часть работает, но мне нужно проверить запрос, прежде чем отправлять сообщение на мою платформу. Я увижу письмо отправителя в моей базе данных для автора сообщения и адреса электронной почты, чтобы выбрать группу профилей, которые будут получать сообщение.
Итак, пример: если я получаю электронную почту
from: [email protected]
to: [email protected]
message: Lorem ipsum dolor sit amet, consectetur adipiscing elit...
Я бы проверить на «[email protected]» на моей базе данных и посмотреть, если он может опубликовать в «группу», и если да, я опубликует сообщение.
Проблема заключается в том, мне нужно проверить две вещи:
- Если запрос на моем API действительно пришел из Mailgun, чтобы избежать Spoofing
- Проверьте, если отправитель сообщения электронной почты является подлинным, не любой спам
чтобы сделать первый я увидел, что я мог бы использовать req.connection.remoteAddress на узле, чтобы получить происхождение, а затем я попытался сделать обратный поиск по IP и посмотреть, было ли это из Mailgun, но обратный поиск не нашел ничего.
Для проверки электронной почты происхождения, я увидел, что я мог бы использовать Received заголовки на электронную почту, а потом я подумал о проверке их с DNS-поиска и посмотреть, если запись MX совпадают.
Я действительно новичок в этом, и мой вопрос в том, есть ли более простой способ проверить эти два шага и безопасно ли вообще?