Rails 如何仅通过操作邮箱接收电子邮件?

时间:2021-04-18 09:22:59

标签: ruby-on-rails nginx postfix-mta

我目前正在测试和设置电子邮件服务系统。

我只需要能够接收电子邮件,但不需要发送电子邮件。

  1. 我的 dns mail.xxx.com ping 成功,它可以从 IP 地址获取字节。

  2. 我的在线服务器打开了端口: 443,25, 587

  3. 我使用 docker 来部署我的 Rails 服务器。

    Dockers 代理端口为:443,25、587,rails 服务器端口为 3005

  4. 我的ApplicationMailboxcomments_mailbox是这样的:


class ApplicationMailbox < ActionMailbox::Base
  
  #routing /@xxx.com/i => :comments
  routing :all => :comments
end
class CommentsMailbox < ApplicationMailbox
  def process
    p mail.decoded
  rescue => e 
    p e
  end
end

  1. 我的nginx配置是这样的:

user xxx;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
  worker_connections 1024;
}

http {
  ...

location ~ /(api|rails)/ {
                proxy_pass http://127.0.0.1:3005;
                proxy_set_header X-Real-IP       $remote_addr;
                proxy_set_header X-Forwarded-For 
                $proxy_add_x_forwarded_for;
                proxy_set_header  HTTP_X_FORWARDED_FOR $remote_addr;
                proxy_set_header NginX-Proxy   true;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                autoindex_exact_size on;
                autoindex_localtime on;
                proxy_read_timeout 240s;
          }
...
}

当我从 gmail 帐户发送电子邮件到 ydddd@xxx.com(我的自定义电子邮件)时,我无法在生产中接收电子邮件。

这是怎么回事?请你帮助我好吗?非常感谢~~

补充:

我读过这个答案和文章: https://stackoverflow.com/questions/58326314/postfix-setup-for-action-mailbox/61629911#61629911

https://thedevpost.com/blog/setup-action-mailbox-with-postfix-part-2/

太棒了。

但是很抱歉我也收不到邮件。

这是我的自定义配置:

# /usr/local/bin/email_forwarder.sh

#!/bin/sh
export HOME=/home/airdrop
export PATH=/home/airdrop/.rvm/bin
export RVM_ROOT=/home/airdrop/.rvm/bin/rvm
cd /home/airdrop && bin/rails action_mailbox:ingress:postfix URL='http://localhost:3005/rails/action_mailbox/relay/inbound_emails' INGRESS_PASSWORD='xxxxxxx'

# /etc/postfix/virtual_aliases

@xxx.com  airdrop@xxx.com

# /etc/postfix/transport

xxx.com    forward_to_rails:
# /etc/postfix/master.cf

...
forward_to_rails   unix  -       n       n       -       -       pipe
  flags=Xhq user=airdrop:airdrop argv=/usr/local/bin/email_forwarder.sh
  ${nexthop} ${user}

然后我重新启动 postfix sudo service postfix restart,它运行正常。

当我从 gmail 发送电子邮件到 ydddd@xxx.com(我的自定义电子邮件)时,我无法收到任何 mail.log,也无法到达我的 rails action 邮件程序。

这是怎么回事?请你帮助我好吗?非常感谢~~

0 个答案:

没有答案