攝取從 SMTP 伺服器轉送的收件電子郵件。
使用 HTTP 基本存取驗證對請求進行驗證。使用者名稱永遠是 actionmailbox
,而且會從應用程式的加密憑證或環境變數中讀取密碼。請參閱下方「使用方式」區段。
請注意在未加密 HTTP 上的基本驗證並不安全。攔截對入口通道的明文請求的攻擊者會得知其密碼。您只應透過 HTTPS 使用此入口通道。
傳回
-
如果已成功記錄收件電郵並排隊路由到適當的信箱,則傳回
204 No Content
-
如果無法對請求進行驗證,則傳回
401 Unauthorized
-
如果未將 Action Mailbox 設定為接受來自 SMTP 伺服器的轉送收件電子郵件,則傳回
404 Not Found
-
如果請求不包含 RFC 822 訊息,則傳回
415 Unsupported Media Type
-
如果未設定入口通道密碼,或者 Active Record 資料庫、Active Storage 服務或 Active Job 後端錯誤設定或不可用,則傳回
500 Server Error
使用方式
-
通知 Action Mailbox 接受來自 SMTP 轉送的電子郵件。
# config/environments/production.rb config.action_mailbox.ingress = :relay
-
產生強而有力的密碼,供 Action Mailbox 用於對入口通道請求進行驗證。
使用
bin/rails credentials:edit
將密碼新增到應用程式的加密憑證,路徑為 `action_mailbox.ingress_password`,屆時 Action Mailbox 會於該處自動找到密碼action_mailbox: ingress_password: ...
或者,在 `RAILS_INBOUND_EMAIL_PASSWORD` 環境變數中提供密碼。
-
將您的 SMTP 伺服器設定為將收件電子郵件導向適當的入口通道指令,並提供您先前產生的
URL
入口通道和INGRESS_PASSWORD
。如果您的應用程式位於
https://example.com
,則您會將 Postfix SMTP 伺服器設定為將收件電子郵件導向至下列指令$ bin/rails action_mailbox:ingress:postfix URL=https://example.com/rails/action_mailbox/postfix/inbound_emails INGRESS_PASSWORD=...
下列熱門 SMTP 伺服器可使用內建入口通道指令
-
Exim (
bin/rails action_mailbox:ingress:exim
) -
Postfix (
bin/rails action_mailbox:ingress:postfix
) -
Qmail (
bin/rails action_mailbox:ingress:qmail
)
-
- C
執行個體公開方法
create() 連結
來源:顯示 | 於 GitHub 上
# File actionmailbox/app/controllers/action_mailbox/ingresses/relay/inbound_emails_controller.rb, line 54 def create if request.body ActionMailbox::InboundEmail.create_and_extract_message_id! request.body.read else head :unprocessable_entity end end