Настройте PHP с почтовым сервером Haraka - PullRequest
0 голосов
/ 07 марта 2019

У меня есть такой скрипт:

<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>

Я установил и настроил почтовый сервер харака. Я думаю, что моя конфигурация в порядке: когда я использую команду swaks -tls -f test@mydomain.com -t foo@mydomain.com -s localhost -p 587 -au testuser -ap testpassword, я правильно получаю почту.

Но когда я отправляю почту с помощью функции mail в PHP, я ничего не получаю.

В моем php.ini я настраиваю:

;[mail function]
SMTP = localhost
smtp_port = 587
username = testuser
password = testpassword
sendmail_from = test@mydomain.com

После выполнения скрипта, когда я проверяю логи харака, я ничего не вижу. Но в файле /var/log/maillog я вижу, что логи sendmail добавляются.

Можете ли вы сказать мне, как настроить PHP для корректного использования моего локального почтового сервера Haraka?

1 Ответ

0 голосов
/ 19 апреля 2019

это не будет работать с почтовой функцией php, попробуйте поработать с ней вместо этого, чтобы отправлять сообщения через SMTP PHPMailer или swiftMailer , проверьте это тоже

    //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!';
   }
   ?>

читайте документы для получения дополнительной информации

...