后队列不工作

我试图在队列之后使用后缀。 基本上,我想看看我是否可以修改传出的电子邮件。 (我对收到的电子邮件根本不感兴趣)。 我做了以下(基于http://www.postfix.org/FILTER_README.html ):

  1. 在aws上启动ec2(ubuntu 16.04)
  2. 安装postfix
  3. 用户filter创buildfilter
  4. 通过添加-o content_filter = filter:dummy来修改master.cf

    smtp inet n – y – – smtpd -o content_filter = filter:dummy

  5. 在master.cf文件的末尾添加filter服务定义

    filter unix – nn – 10 pipe flags = Rq user = filter null_sender = argv = / home / ubuntu / run_filter.sh -f $ {sender} – $ {recipient}

  6. 使用发送电子邮件

    回声“你好世界”| mail -s“第二条消息”… @ gmail.com

但是filter没有被调用。 而电子邮件发送没有任何改变。

看来我错过了一些非常基本的东西。 如果有人能帮忙,谢谢!

这可能是你的php.ini没有引用sendmail的正确path。

你可以检查你的php.ini文件或apache日志来确认这一点。

或者,您也可以使用绝对path:

 echo "Subject: test" | /usr/sbin/sendmail [email protected] 

您也可以从命令行确认注册的path:

 which sendmail 

祝你好运 :)

我可能是错误的,因为我不知道你的设置,但我认为, mail不通过smtp发送消息。 你可以检查postfix日志,如果你的邮件是通过postfix/smtpd或通过postfix/pickup收到的。

你可以configuration邮件使用smtp我想,取决于你已经安装的mail (mailx,nail等)。

这个答案不直接回答你的问题,但可以帮助你更长远的。

当我有一个应用程序,我期望做一些事情,我使用跟踪工具,如stracetcpdump / wiresharkperfsystemtap

在你的情况下,因为我期望mail通过TCP连接或至less一个Unix套接字来发送电子邮件,我会在strace下运行它。

 echo "hello world" | strace -f -e network mail -s "second message" [email protected] 

-f =也要跟踪subprocess。

-e network =仅跟踪networking相关的系统调用。 您可以使用-e file来查看使用哪些文件。 有关更多详细信息,请参阅strace(1)手册页