Class: Ingresses::Mailgun::InboundEmailsController
- Inherits:
-
ActionMailbox::BaseController
- Object
- ActionMailbox::BaseController
- Ingresses::Mailgun::InboundEmailsController
- Defined in:
- app/controllers/action_mailbox/ingresses/mailgun/inbound_emails_controller.rb
Overview
Ingests inbound emails from Mailgun. Requires the following parameters:
-
body-mime: The full RFC 822 message -
timestamp: The current time according to Mailgun as the number of seconds passed since the UNIX epoch -
token: A randomly-generated, 50-character string -
signature: A hexadecimal HMAC-SHA256 of the timestamp concatenated with the token, generated using the Mailgun API key
Authenticates requests by validating their signatures.
Returns:
-
204 No Contentif an inbound email is successfully recorded and enqueued for routing to the appropriate mailbox -
401 Unauthorizedif the request's signature could not be validated, or if its timestamp is more than 2 minutes old -
404 Not Foundif Action Mailbox is not configured to accept inbound emails from Mailgun -
422 Unprocessable Entityif the request is missing required parameters -
500 Server Errorif the Mailgun API key is missing, or one of the Active Record database, the Active Storage service, or the Active Job backend is misconfigured or unavailable
Usage
-
Give Action Mailbox your Mailgun API key so it can authenticate requests to the Mailgun ingress.
Use
rails credentials:editto add your API key to your application's encrypted credentials underaction_mailbox.mailgun_api_key, where Action Mailbox will automatically find it:action_mailbox: mailgun_api_key: ...Alternatively, provide your API key in the
MAILGUN_INGRESS_API_KEYenvironment variable. -
Tell Action Mailbox to accept emails from Mailgun:
# config/environments/production.rb config.action_mailbox.ingress = :mailgun -
Configure Mailgun to forward inbound emails to
/rails/action_mailbox/mailgun/inbound_emails/mime.If your application lived at
https://example.com, you would specify the fully-qualified URLhttps://example.com/rails/action_mailbox/mailgun/inbound_emails/mime.
Defined Under Namespace
Classes: Authenticator
Instance Method Summary collapse
Instance Method Details
#create ⇒ Object
48 49 50 |
# File 'app/controllers/action_mailbox/ingresses/mailgun/inbound_emails_controller.rb', line 48 def create ActionMailbox::InboundEmail. params.require("body-mime") end |