我一直在谷歌搜索postfix howto's,但我仍然无法弄清楚如何设法在linux-server上接收电子邮件(更具体的 - Ubuntu).
我需要的只是一个全能邮箱,它可以获取所有电子邮件并将它们提供给ruby脚本(当然,然后将其传递给Rails).我之前能够设置postfix用于发送电子邮件,我不得不说 - 它根本没有痛苦,除了实际安装它之外几乎什么都没做.
你能建议一个好的howto,或者一个配方,或者一个可以解决这个问题的替代易于设置的邮件服务器吗?
选择您希望接收转发到Ruby脚本的邮件的帐户.编辑该.forward
脚本的主目录中的 文件以进行读取
"|/path/to/my/ruby/script"
当postfix将邮件传递给帐户时,它将使用指定用户的权限运行脚本,并将在标准输入上提供邮件.根据您对邮件的处理方式,您可能希望以某种方式对其进行身份验证,以便脚本知道它真的来自您.(例如,带有salt的标头和salt +密码的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程序来正确处理邮件.
这个答案分为两部分,Norman Ramsey的答案涵盖了第二部分:将电子邮件交给要处理的脚本.第一部分是配置Postfix以接收电子邮件.既然你需要一个全能,你可以在/ etc/postfix/aliases中放置这样的东西
@yourdomain.com localuser
'localuser'是您系统上具有的帐户的名称
/home/localuser/.forward
其中包含命令(参见Norman的回复).或者,你可以在Postfix中保留所有内容
/等/后缀/别名:
@ yourdomain.com |/path/to/your/script
这将发送所有发送到@ yourdomain.com的电子邮件,并将其发送到您的脚本进行处理.请记住,该脚本将作为postfix用户执行,因此您需要确保您的环境设置正确(例如,您不依赖于普通用户帐户所具有的特定$ PATH).后缀用户可能有一个非常基本的环境(例如甚至可能在他们的$ PATH中没有/ usr/local/bin)