将所有收到的邮件重定向到脚本中

fel*_*46r 6 email php debian redirect pipe

我不知道邮件传递。

我需要将所有传入的电子邮件 (*@mydomain.com) 重定向到一个 php 脚本。

我正在使用 debian

是否存在一个简单的邮件服务器来做到这一点?(没有exim,postfix等)

我只需要重定向所有邮件请求。

如果没有 exim、postfix 等就无法做到这一点,我该怎么做?

谢谢!

Der*_*rfK 6

当您说“PHP 脚本”时,您是指其他地方的网络服务器上的 PHP 脚本,还是在本地命令行上运行的 PHP 脚本?

我已经使用 exim4 和 curl 将邮件发送到其他地方的网站,方法是创建一个像这样的自定义传输:

send_to_site:
  driver = pipe
  command = /usr/bin/curl https://example.com/mail.php --data-urlencode "mail@-"
  user = nobody
  group = nogroup
  return_path_add
  delivery_date_add
  envelope_to_add
Run Code Online (Sandbox Code Playgroud)

如果您使用 Debian 的“拆分配置”选项,您将在/etc/exim4/conf.d/transport/其中创建一个文件。在command这里将通过整个电子邮件(头和身体)mail.php的变量$_REQUEST["mail"]。您需要让 PHP 脚本处理标头。

要触发传输,您需要router配置一个与您想要接收的任何电子邮件相匹配的配置,并使用上述内容transport发送它。使用拆分配置,路由器进入/etc/exim4/conf.d/router/。为了捕获特定域的所有邮件,我尚未对此进行测试,但我认为这是正确的:

catchall_mail:
  driver = accept
  domains = mydomain.com
  transport = send_to_site
Run Code Online (Sandbox Code Playgroud)

Debian 将路由器目录中的文件编号以设置路由器签入的顺序。第一个匹配的路由器将用于处理电子邮件。从我这里的配置来看,您可能希望将自己的编号设置为 450 左右,以便在别名之后和处理本地用户(如hubusers和 )的路由器之前procmail

将这些文件添加到传输和路由器目录后,您需要运行update-exim4.conf以让 Debian 创建 exim 实际读取的配置文件。


小智 0

我知道你可以用超级邮件做这样的事情,但那是用 Perl 编写的。不确定 php 实现。