操作邮箱的后缀设置



我遵循了官方Ruby on Rails Guide的说明。我可以在传入邮件上运行脚本。

但是我不知道如何调用action_mailbox:ingress: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获取的内容以及分别用于 PATH 和 RBENV_PATH 的 rbenv 命令
$ $PATH
$ which rbenv
  • 复制您添加到credentials的密码或您的ENV/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:将后缀配置为将传入电子邮件管道到脚本

  • 创建/etc/postfix/virtual_aliases以添加 catch-all 别名;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}

我们应该指定用户,以便脚本由该用户运行,而不是后缀或没有人。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/

从指南:

配置 Postfix

以将入站电子邮件通过管道传输到bin/rails action_mailbox:ingress:postfix,提供 Postfix 入口的URL和您之前生成的INGRESS_PASSWORD。如果您的应用程序位于https://example.com,则完整命令将如下所示:$ bin/rails action_mailbox:ingress:postfix URL=https://example.com/rails/action_mailbox/relay/inbound_emails INGRESS_PASSWORD=...

所以后缀是运行该命令的那个