我需要用PHP从我的网站发送电子邮件。根据要求,我不能使用内置的mail()PHP函数(因此没有sendmail)。我在我的unix服务器上下载了"邮件",通过PHP中的一个功能应该可以连接以发送电子邮件。PHP代码如下:
<?php
function sendMail() {
shell_exec("echo mymessage | mail -s mysubject myreal@email.com");
}
?>
不幸的是,它不起作用,但如果我在unix终端(机器是Centos7)中运行该命令,它就会起作用。我还尝试了system()和exec()PHP函数,但没有成功。我该怎么做这项工作?感谢
编辑:这个问题不一样。我不能使用mail()PHP函数,而是使用替代
大多数框架都得出了相同的结论,即mail()
不是发送邮件的好解决方案。现在大多数框架所做的是打开一个套接字,并通过该套接字直接发送邮件命令。这就是为什么使用PHPMailer或Zend Framework 2(不需要使用整个框架)是首选。这是一个更清洁的整体解决方案。
您的web服务用户可能没有使用内置Linux客户端的权限。这很可能就是shell命令不起作用的原因。我强烈建议避免使用shell命令并禁用它们,因为它们存在安全风险。