【问题标题】:How do I painlessly receive mail in linux and feed it to Rails?如何在 linux 中轻松接收邮件并将其提供给 Rails?
【发布时间】:2010-10-28 12:22:20
【问题描述】:

我整晚都在谷歌上搜索 postfix howto,但我仍然无法弄清楚如何在 linux-server 上接收电子邮件(更具体的是 - Ubuntu)。 p>

我只需要一个包罗万象的邮箱,它可以获取所有电子邮件并将它们提供给 ruby​​ 脚本(当然,然后将其传递给 Rails)。不久前我能够设置用于发送电子邮件的后缀,我不得不说 - 这一点都不痛苦,除了实际安装它之外,我几乎什么都没做。

您能否提出一个好的方法、食谱或替代的易于设置的邮件服务器来解决这个问题?

【问题讨论】:

    标签: ruby-on-rails email postfix-mta mail-server


    【解决方案1】:

    还可以查看 Jason Seifer 的文章了解更多详细信息。

    http://jasonseifer.com/2009/04/24/receving-email-with-rails

    【讨论】:

      【解决方案2】:

      这个答案有两个部分,Norman Ramsey 的答案涵盖了第二部分:将电子邮件交给脚本进行处理。第一部分是配置 Postfix 以接收电子邮件。既然你需要一个包罗万象的东西,你可以把这样的东西放在 /etc/postfix/aliases

      @yourdomain.com localuser
      

      'localuser' 是您系统上的帐户的名称,它有一个

      /home/localuser/.forward

      其中包含命令(参见诺曼的回应)。或者,您可以将其全部保存在 Postfix 中

      /etc/postfix/别名:

      @yourdomain.com |/path/to/your/script

      这会将发送到@yourdomain.com 的所有电子邮件发送到您的脚本进行处理。请记住,脚本将以 postfix 用户身份执行,因此您需要确保您的环境设置正确(例如,您不依赖于普通用户帐户所具有的特定 $PATH)。 postfix 用户可能有一个非常基本的环境(例如,他们的 $PATH 中甚至可能没有 /usr/local/bin)

      【讨论】:

      • 不要忘记在编辑别名文件后运行“newaliases”(以 root 身份或通过 sudo) - 这将重新生成(Berkeley?)数据库文件,这是 Postfix 用于快速查找的文件。跨度>
      • 这还能用吗?它似乎无法在我的 Ubuntu 16.04 服务器上运行。
      【解决方案3】:

      选择您希望接收转发到您的 Ruby 脚本的邮件的帐户。编辑该脚本主目录中的.forward 文件以读取

      "|/path/to/my/ruby/script"
      

      postfix 向账户投递邮件时,会以指定用户的权限运行脚本,并以标准输入方式提供邮件。根据您对邮件的处理方式,您可能希望以某种方式对其进行身份验证,以便脚本知道它确实来自您。 (例如,带有盐的标头和盐+密码的 SHA1 哈希。)

      这是我自己的邮件系统中的一个真实示例:

      "|/home/nr/bin/filtermail /home/nr/machine/x86-bsd/bin/luapipe /home/nr/machine/x86-bsd/bin/safe-slocal 2>>/home/nr/slocal.log 1>&2"
      

      这会转到一个 shell 脚本,然后调用 Lua 和 C 程序来正确处理邮件。

      【讨论】:

      • 你的回答很简短)哪个用户应该拥有这个“.forward”文件?它适用于后缀吗?
      • 无论哪个用户收到邮件,是的,它适用于 postfix。
      猜你喜欢
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 2019-03-05
      相关资源
      最近更新 更多