我使用mstmp从各种smtp帐户发送邮件。使用PHP的mail命令,它成功使用默认帐户从mstmp发送邮件。
但是,我想让它指定要发送的smtp帐户。使用mstmp,您可以使用以下命令执行此操作:msmtp --account = svh其中svh是您命名的smtp帐户。有关msmtp的更多信息,请访问:msmtp sourceforce
那么我有什么选择,是否有一个修改过的邮件命令可以让我使用--account参数来使用msmtp?我应该只运行具有root权限的shell命令(不想这样做)。
你会如何解决这个问题?
答案 0 :(得分:2)
看起来msmtp有一种方法可以将配置定义为系统范围,因此www-data实际上可以运行命令并拥有我需要的电子邮件。爱msmtp。
编辑:这是我快速而肮脏的功能,可以做我想做的事情,以后有人需要这个。我强烈建议你做更多的错误检查。
function msmtp($To, $Subject, $Body, $Headers, $Account) {
$Email = "To: $To\nSubject: $Subject\n$Headers\n\n$Body\n";
exec("echo '$Email' | msmtp --account=$Account $To");
}
它非常类似于PHP mail()函数,因此您可以使用msmtp帐户“apple”发送电子邮件作为stevejobs,如下所示:
msmtp(“ billgates@microsoft.com ”,“嘿,请阅读此内容”,“你太富有了,给我所有的钱”,“< strong>来自:stevejobs@apple.com “,”苹果“)