Как отправить электронное письмо при публикации постов? - PullRequest
0 голосов
/ 28 мая 2019

Я хотел отправить электронное письмо при публикации сообщения, и я не хотел использовать плагин.Я добавляю код ниже в functions.php моей папки темы, но он не отправляет мне никаких писем.это относится к другой части.

 function dothisfunction() {
     $sent = wp_mail("nadia.amoee@gmail.com","sms test", "message");
     if($sent) {
         echo "sent";
     }else {
         echo "failed";
     }

 }
 add_action( 'publish_post', 'dothisfunction' );

Ответы [ 2 ]

1 голос
/ 28 мая 2019

У вас может быть одна из следующих причин, почему она не отправляется

1) Возможно, возникла исключительная ситуация PHPMailer: сбой wp_mail. Попробуйте отладить ошибку, используя приведенный ниже код

<code>// show wp_mail() errors
add_action( 'wp_mail_failed', 'onMailError', 10, 1 );
function onMailError( $wp_error ) {
    echo "<pre>";
    print_r($wp_error);
    echo "
";}

2) Wordpress использует класс PHPMailer для отправки электронной почты через почтовую функцию PHP.

Поскольку почтовая функция PHP возвращает очень мало информации после выполнения (только TRUE или FALSE)Я предлагаю временно сократить вашу функцию до минимума, чтобы увидеть, работает ли функция wp_mail.

$mailResult = false;
$mailResult = wp_mail( 'youremail@bla.com', 'test if mail works', 'hurray' );
echo $mailResult;

3) Возможно, у вас проблемы с сервером, потому что «Не получено» не означает то же, что и «не отправлено ", и это важное различие в устранении неполадок.

Если другие адреса электронной почты получают, вероятно, что-то помечает ваше сообщение на принимающих хостах, которые вы перечислили.

4) Не все конфигурации WordPress / сервера позволяют стандартной функции WordPress wp_mail отправлять почту.n тестируя на локальном (хост) сервере, многие интернет-провайдеры блокируют исходящий почтовый трафик по умолчанию.Иногда блокировка происходит тихо, так что похоже, что все работает, но почта никогда не отправляется.Помогает установить плагин WP Mail SMTP (или аналогичный), чтобы можно было настроить исходящие SMTP-серверы (с аутентификацией или без нее).

5) Возможно, ваша электронная почтапомечен как спам, или просто ваш провайдер электронной почты не позволяет ему войти в ваш почтовый ящик.

У вас есть настройка записей SPF?Если вы отправляете электронное письмо со своего веб-сайта и для заголовка from установлено значение @gmail.com или @hotmail.com, оно, безусловно, не будет доставлено в ваш почтовый ящик, поскольку электронное письмо не отправляется с серверов gmail или hotmail, а с вашего., поэтому он думает, что вы пытаетесь совершить фишинговую атаку.

Поэтому вам также следует проверить папки спама / мусора на предмет перехвата.

ПРИМЕЧАНИЕ. Существует много ссылок, связанных с этой проблемой, которыевы можете пойти на это, но в конечном итоге фаворитом для всех является использование WORDPRESS MAIL SMTP PLUGIN, о котором я упоминал в пункте 4 и которое решает проблему для более чем 95% людей.

0 голосов
/ 28 мая 2019

Используйте какой-нибудь SMTP-сервер, и вы должны решить. Вы уверены, что ваш веб-хостинг поддерживает отправку электронной почты? Они часто в черном списке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...