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 Signing 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 Signing 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 Signing key (which you can find under Settings -> Security & Users -> API security in Mailgun) so it can authenticate requests to the Mailgun ingress.
Use
bin/rails credentials:editto add your Signing key to your application's encrypted credentials underaction_mailbox.mailgun_signing_key, where Action Mailbox will automatically find it:action_mailbox: mailgun_signing_key: ...Alternatively, provide your Signing key in the
MAILGUN_INGRESS_SIGNING_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. mail end  |