我有一个 cPanel 网络托管帐户。通过这个帐户,我有一个基于 PHP 的支持/故障单系统供我的客户使用。我希望能够向我的客户和票务系统发送电子邮件,但发送到票务系统的电子邮件似乎无法发送从我的客户,以便创建的支持票证显示在他们的帐户下。
所以我想做的是创建一些电子邮件地址[email protected]
,该地址通过管道传输到 unix 命令或 shell 脚本。这意味着当我从[email protected]
to[email protected]
和 CC发送电子邮件时[email protected]
,shell 脚本应该能够重发电子邮件至[email protected]
但从电子邮件的“收件人:”地址重新发送电子邮件。
有没有办法制作一个 shell 脚本来接受标准输入上的电子邮件,重写 From: 地址,并将邮件重新发送到新地址? Procmail 可以做这样的事情吗?或者我必须自己手动编码?
答案1
Procmail 附带formail
操作邮件标头的命令。这procmailex
包含 中的使用示例.procmailrc
。这应该做你想要的(未经测试):
formail -R To: From: -U From: -I Cc: -I 'To: [email protected]'
答案2
吉尔斯的答案已经差不多了,但出于某种原因我不得不通过管道formail
两次。此外,我需要在重写标题后实际发送邮件。为了使整个事情顺利进行,我做了以下工作:
我创建了一个新文件,
~/bin/resend-support
其中包含:#!/bin/bash /usr/bin/formail -R To: From: | \ /usr/bin/formail -U From: -I Cc: -I 'To: [email protected]' | \ /usr/sbin/sendmail -oi -t
我使文件可执行 (
chmod +x ~/bin/resend-support
)[email protected]
在 cPanel 中,我创建了一个通过管道传输到的电子邮件地址转发器~/bin/resend-support
(使用“高级”下的“管道到程序”)
[email protected]
现在,当我向和 CC发送电子邮件时[email protected]
,它会通过管道~/bin/resend-support
重新发送电子邮件到[email protected]
从 [email protected]