Отправка почты через функцию PHP

Я пытаюсь отправить простые электронные письма через функцию PHP mail () с сервера PLESK, используя sendmail (в / usr / sbin / sendmail).

Я уже читал контрольный список Джона Конде, объясненный здесь Функция почты PHP не работает. не завершена отправка электронной почты, и моя проблема, скорее всего, связана с провайдером, потому что мой скрипт отправляет электронные письма на учетную запись gmail, но никому больше; электронное письмо, отправленное на учетные записи Gmail, попадает в папку СПАМА. Я пытаюсь отправить, например, на адрес [email protected].

Прежде чем вы спросите, я уже проверил репутацию своего IP-адреса отправителя, проверил результат обратного DNS и получил 9 баллов из 10 на http://mail-tester.com/ [средство проверки спама].

В php.ini домена я помещаю поля как: SMTP, smtp_port, sendmail_from, sendmail_path, auth_password, auth_username. (поскольку у меня есть сертификат SSL в домене, я использую порт 465 на сервере smtp провайдера).

Это фрагмент кода:

<?php
    error_reporting(-1);
    ini_set('display_errors', 'On');
    ini_set('display_startup_errors', 1);
    set_error_handler("var_dump");

    //
    $replyTo = "[email protected]";
    $mailTo  = "[email protected]";

    //Test sender delle Email
    $headers = 'From: '.$replyTo."\r\n".
               'Reply-To: '.$replyTo."\r\n" .'X-Mailer: PHP/' . phpversion();

    if (mail($mailTo,"Title","Body of the message",$headers)){
       echo "Mail ok";
    } else {
       echo "Error Mail";
    }
?>

Это журнал сервера в почтовом каталоге

Aug 23 10:38:20 webserver check-quota[1905]: Starting the check-quota filter...
Aug 23 10:38:20 webserver journal: plesk sendmail[1904]: handlers_stderr: SKIP
Aug 23 10:38:20 webserver journal: plesk sendmail[1904]: SKIP during call 'check-quota' handler
Aug 23 10:38:20 webserver postfix/pickup[1560]: DAC521A8B: uid=10003 from=<[email protected]>
Aug 23 10:38:20 webserver postfix/cleanup[1910]: DAC521A8B: message-id=<[email protected]>
Aug 23 10:38:20 webserver postfix/qmgr[1561]: DAC521A8B: from=<[email protected]>, size=450, nrcpt=1 (queue active)
Aug 23 10:38:20 webserver postfix-local[1915]: postfix-local: [email protected], [email protected], dirname=/var/qmail/mailnames
Aug 23 10:38:20 webserver postfix-local[1915]: cannot chdir to mailname dir fcaliari: No such file or directory
Aug 23 10:38:20 webserver postfix-local[1915]: Unknown user: [email protected]
Aug 23 10:38:20 webserver postfix/pipe[1914]: DAC521A8B: to=<[email protected]>, relay=plesk_virtual, delay=0.05, delays=0.03/0.01/0/0.01, dsn=2.0.0, status=sent (delivered via plesk_virtual service)
Aug 23 10:38:20 webserver postfix/qmgr[1561]: DAC521A8B: removed

В журналах появляется это электронное письмо [email protected], которое я никогда не использовал в файле php.ini или в скрипте.

Любая помощь ценится!


person Francesco Caliari    schedule 24.08.2018    source источник
comment
вы проверили файл vhost (для ServerAdmin)   -  person treyBake    schedule 24.08.2018


Ответы (1)


При отправке почты в php скрипте я настоятельно рекомендую использовать SMTP реле для отправки электронной почты через выделенный почтовый сервер вместо отправки напрямую через ваш веб-сервер. Причина этого: если вы размещены на общем сервере, есть вероятность, что другие люди, которые также размещены на этом сервере, могут рассылать спам (что приведет к тому, что ваши электронные письма будут помечены как спам).

У меня был хороший опыт использования PHPMailer, есть множество настроек, которые вы можете настроить, чтобы установка работала с вашей средой / установкой.

Для справки см: https://github.com/PHPMailer/PHPMailer

person Lewis Browne    schedule 24.08.2018
comment
Я слышу тебя хахаха - person treyBake; 24.08.2018
comment
в файле php.ini я уже использую другой SMTP-сервер, не такой, как мой веб-сервер. Я буду ждать другого ответа, но если кто-то не может мне помочь, думаю, я воспользуюсь PHPMailer! - person Francesco Caliari; 24.08.2018
comment
Скажем, использование чего-то еще - не решение проблем. - person alvaro fvr; 24.08.2018
comment
Я не просто говорю use something else, я говорю, что я бы использовал и почему я бы рекомендовал это использовать. - person Lewis Browne; 24.08.2018