我试图在队列之后使用后缀。 基本上,我想看看我是否可以修改传出的电子邮件。 (我对收到的电子邮件根本不感兴趣)。 我做了以下(基于http://www.postfix.org/FILTER_README.html ):
通过添加-o content_filter = filter:dummy来修改master.cf
smtp inet n – y – – smtpd -o content_filter = filter:dummy
在master.cf文件的末尾添加filter服务定义
filter unix – nn – 10 pipe flags = Rq user = filter null_sender = argv = / home / ubuntu / run_filter.sh -f $ {sender} – $ {recipient}
使用发送电子邮件
回声“你好世界”| 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等)。
这个答案不直接回答你的问题,但可以帮助你更长远的。
当我有一个应用程序,我期望做一些事情,我使用跟踪工具,如strace
, tcpdump
/ wireshark
, perf
, systemtap
。
在你的情况下,因为我期望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)手册页