摄取从 SMTP 服务器中继的入站电子邮件。
使用 HTTP 基本访问身份验证对请求进行身份验证。用户名始终为 actionmailbox
,密码从应用程序的加密凭据或环境变量中读取。请参阅下面的用法部分。
请注意,基本身份验证在未加密的 HTTP 上是不安全的。拦截对入口的明文请求的攻击者可以了解其密码。你应该只在 HTTPS 上使用此入口。
返回
-
如果成功记录入站电子邮件并将其排队以路由到适当的邮箱,则返回
204 无内容
-
如果无法对请求进行身份验证,则返回
401 未授权
-
如果未将 Action Mailbox 配置为接受从 SMTP 服务器中继的入站电子邮件,则返回
404 未找到
-
如果请求不包含 RFC 822 消息,则返回
415 不支持的媒体类型
-
如果未配置入口密码,或者 Active Record 数据库、Active Storage 服务或 Active Job 后端配置错误或不可用,则返回
500 服务器错误
用法
-
告知 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 (<tt>bin/rails action_mailbox:ingress:exim)
-
Postfix (<tt>bin/rails action_mailbox:ingress:postfix)
-
Qmail (<tt>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 ActionMailbox::InboundEmail.create_and_extract_message_id! request.body.read end