操作邮箱的后缀设置

Postfix Setup for Action Mailbox

我按照 Rails 指南中官方 Ruby 的说明进行操作。我可以 运行 接收邮件的脚本。

但我不知道如何调用 action_mailbox:ingress:postfix 命令。 不知何故,我必须切换到工作区,然后 运行 bin/rails。 将邮件发送到 rails 是否有一些最佳实践?

来自guide

Configure Postfix to pipe inbound emails to bin/rails action_mailbox:ingress:postfix, providing the URL of the Postfix ingress and the INGRESS_PASSWORD you previously generated. If your application lived at https://example.com, the full command would look like this: $ bin/rails action_mailbox:ingress:postfix URL=https://example.com/rails/action_mailbox/relay/inbound_emails INGRESS_PASSWORD=...

所以后缀是 运行 命令

您可以按照以下步骤在生产服务器中使用操作邮箱配置 postfix:

第 1 步:创建 bash 脚本

/usr/local/bin/ 中创建一个脚本,将所有收到的电子邮件转发到我们的 rails 应用程序:

$ nano email_forwarder.sh

在脚本中添加以下内容:

#!/bin/sh
export HOME=YOUR_HOME_PATH
export PATH=YOUR_PATH
export RBENV_ROOT=YOUR_RBENV_PATH

cd /path/to/your/project && bin/rails action_mailbox:ingress:postfix URL='https://truemark.com.np/rails/action_mailbox/relay/inbound_emails' INGRESS_PASSWORD='YOUR_INGRESS_PASSWORD'

替换 HOMEPATHRBENV_ROOTURLINGRESS_PASSWORD 的值,如下所述:

  • 复制 HOME
  • 的主目录
$ cd
$ pwd
  • 分别复制从 $PATH 和 which rbenv 命令获取的内容 RBENV_PATH
$ $PATH
$ which rbenv
  • 复制您添加到 credentialsENV / application.yml 文件的密码 INGRESS_PASSWORD

  • 对于 URL,如果您的应用程序位于 https://example.com,完整的命令将如下所示:

bin/rails action_mailbox:ingress:postfix URL='https://example.com/rails/action_mailbox/relay/inbound_emails' INGRESS_PASSWORD='YOUR_STRONG_PASSWORD'

第 2 步:配置 Postfix 以将传入电子邮件传送到脚本

  • 创建 /etc/postfix/virtual_aliases 以添加一个包罗万象的别名; localuser 需要是现有的本地用户:
# /etc/postfix/virtual_aliases
@mydomain.tld   localuser@mydomain.tld
  • 创建 /etc/postfix/transport 以添加传输映射。 forward_to_rails可以随便你;稍后将在 master.cf
  • 中使用
# /etc/postfix/transport
mydomain.tld    forward_to_rails:
  • 接下来,transportvirtual_aliases都需要编译成berkeley db文件:
$ sudo postmap /etc/postfix/virtual_aliases
$ sudo postmap /etc/postfix/transport
  • 将传输添加到 /etc/postfix/master.cf
# /etc/postfix/master.cf
forward_to_rails   unix  -       n       n       -       -       pipe
  flags=Xhq user=deploy:deploy argv=/usr/local/bin/email_forwarder.sh
  ${nexthop} ${user}

我们应该指定用户,这样脚本是由该用户 运行 而不是 postfix 或 nobody。 user=deploy:deploy~user=user:group

  • /etc/postfix/main.cf中添加以下内容
# /etc/postfix/main.cf
  transport_maps = hash:/etc/postfix/transport
  virtual_alias_maps = hash:/etc/postfix/virtual_aliases

您可以使用 tail -f /var/log/mail.log 查看 postfix 日志。

大功告成!您现在应该可以在您的操作邮箱中收到电子邮件。

您可以在此处详细了解解决方案:https://thedevpost.com/blog/setup-action-mailbox-with-postfix-part-2/

开发中设置action邮箱和测试,详细可以看这里:https://thedevpost.com/blog/setup-action-mailbox-with-postfix-part-1/