7

我整晚都在谷歌搜索 postfix howto,但我仍然不知道如何在 linux-server 上接收电子邮件(更具体 - Ubuntu)。

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

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

4

3 回答 3

6

选择您希望接收转发到您的 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 程序来正确处理邮件。

于 2009-05-24T00:50:51.050 回答
5

这个答案有两个部分,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)

于 2009-05-24T01:21:36.603 回答
-1

另请查看 Jason Seifer 的文章了解更多详细信息。

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

于 2009-12-11T22:47:53.570 回答