class ActionMailbox::Ingresses::Sendgrid::InboundEmailsController
Обрабатывает входящие электронные письма от SendGrid. Требуется параметр email содержащий полное сообщение RFC 822.
Аутентификация запросов осуществляется с помощью HTTP Basic Access Authentication. Имя пользователя всегда actionmailbox, а пароль считывается из зашифрованных учетных данных приложения или переменной среды. См. раздел «Использование» ниже.
Обратите внимание, что базовая аутентификация небезопасна по незашифрованному HTTP. Злоумышленник, который перехватывает запросы в открытом тексте к входу SendGrid, может узнать его пароль. Вы должны использовать вход SendGrid только по HTTPS.
Возвращает:
-
204 No Contentесли входящее электронное письмо успешно записано и помещено в очередь для маршрутизации в соответствующий почтовый ящик -
401 Unauthorizedесли подпись запроса не может быть проверена -
404 Not Foundесли Action Mailbox не настроен на прием входящих электронных писем от SendGrid -
422 Unprocessable Entityесли в запросе отсутствует обязательный параметрemail -
500 Server Errorесли пароль для входа не настроен, или если одна из баз данных Active Record, служба Active Storage или бэкэнд Active Job некорректно настроены или недоступны
Использование
-
Укажите Action Mailbox принимать электронные письма от SendGrid:
# config/environments/production.rb config.action_mailbox.ingress = :sendgrid
-
Сгенерируйте надежный пароль, который Action Mailbox может использовать для аутентификации запросов к входу SendGrid.
Используйте
bin/rails credentials:editчтобы добавить пароль в зашифрованные учетные данные вашего приложения вaction_mailbox.ingress_password, где Action Mailbox автоматически найдет его:action_mailbox: ingress_password: ...
В качестве альтернативы, укажите пароль в переменной среды
RAILS_INBOUND_EMAIL_PASSWORD. -
Настройте SendGrid Inbound Parse для пересылки входящих электронных писем на
/rails/action_mailbox/sendgrid/inbound_emailsс именем пользователяactionmailboxи сгенерированным ранее паролем. Если ваше приложение размещено по адресуhttps://example.com, вы должны настроить SendGrid со следующим полным URL-адресом:https://actionmailbox:PASSWORD@example.com/rails/action_mailbox/sendgrid/inbound_emails
ПРИМЕЧАНИЕ: При настройке вебхука SendGrid Inbound Parse обязательно установите флажок «Отправить необработанное, полное сообщение MIME». Action Mailbox нуждается в необработанном сообщении MIME для работы.
Открытые методы экземпляра
# File actionmailbox/app/controllers/action_mailbox/ingresses/sendgrid/inbound_emails_controller.rb, line 51 def create ActionMailbox::InboundEmail.create_and_extract_message_id! mail rescue JSON::ParserError => error logger.error error.message head :unprocessable_entity end
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.