我有一个像这样的脚本:
<html>
<body>
<?php
$addresses = ['foo@mydomain.com'];
foreach ($addresses as $address) {
sendMail($address);?><br /><?php
}
?>
<?php
function sendMail($address) {
mail($address, "object", "message");
print $address;
}
?>
</body>
</html>
我安装并配置了邮件服务器haraka。我认为我的配置还可以:使用命令swaks -tls -f test@mydomain.com -t foo@mydomain.com -s localhost -p 587 -au testuser -ap testpassword
时,我可以正确接收邮件。
但是当我通过PHP中的mail函数发送邮件时,我什么也没收到。
在我的php.ini
中,我配置:
;[mail function]
SMTP = localhost
smtp_port = 587
username = testuser
password = testpassword
sendmail_from = test@mydomain.com
执行脚本后,当我查看haraka的日志时,我什么都看不到。但是在文件/var/log/maillog
中,我可以看到sendmail的日志已添加。
您能告诉我如何配置PHP以正确使用我的本地邮件服务器Haraka吗?
答案 0 :(得分:0)
它不适用于php的邮件功能,请尝试与此功能一起通过SMTP PHPMailer或swiftMailer,check this too
发送邮件 //PHPMailer
<?php
use PHPMailer\PHPMailer\PHPMailer;
require 'vendor/autoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = 'localhost';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'test@domain.com';
$mail->Password = 'EMAIL_ACCOUNT_PASSWORD';
$mail->setFrom('test@domain.com', 'Your Name');
$mail->addReplyTo('reply-box@domain.com', 'Your Name');
$mail->addAddress('example@gmail.com', 'Receiver Name');
$mail->Subject = 'PHPMailer SMTP message';
$mail->msgHTML(file_get_contents('message.html'), __DIR__);
$mail->AltBody = 'This is a plain text message body';
$mail->addAttachment('test.txt');
if (!$mail->send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message sent!';
}
?>
阅读文档以获取更多信息