接收来自 SMTP 服务器的中继入站电子邮件。
使用 HTTP 基本身份验证来验证请求。用户名始终是 actionmailbox,密码从应用程序的加密凭据或环境变量中读取。请参阅下面的“用法”部分。
请注意,未加密 HTTP 上的基本身份验证是不安全的。截获明文请求到入口点的攻击者可以获取其密码。您应该仅通过 HTTPS 使用此入口点。
返回值
-
204 No Content:如果入站电子邮件已成功记录并排队以路由到相应的邮箱 -
401 Unauthorized如果请求未能通过身份验证 -
404 Not Found如果 Action Mailbox 未配置为接受从中继的 SMTP 服务器接收的入站电子邮件 -
415 Unsupported Media Type如果请求不包含 RFC 822 消息 -
如果入站接口密码未配置,或者 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 ActionDispatch::Constants::UNPROCESSABLE_CONTENT end end