您可以按照以下步骤在生产服务器中使用操作邮箱配置 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'
替换HOME、PATH、RBENV_ROOT、URL 和INGRESS_PASSWORD 的值,如下所述:
$ cd
$ pwd
- 复制您从 $PATH 获得的内容,并分别为 PATH 和 RBENV_PATH 复制哪个 rbenv 命令
$ $PATH
$ which rbenv
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:
- 接下来,
transport 和 virtual_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}
我们应该指定用户,以便脚本由该用户运行,而不是后缀或无人。 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查看后缀日志。
完成了!您现在应该可以在您的操作邮箱中收到电子邮件了。
您可以在此处详细了解解决方案:https://thedevpost.com/blog/setup-action-mailbox-with-postfix-part-2/
关于在开发中设置动作邮箱和测试,你可以在这里详细阅读:https://thedevpost.com/blog/setup-action-mailbox-with-postfix-part-1/