Отправка электронной почты с помощью jQuery / PHP - PullRequest
2 голосов
/ 23 августа 2009

Как вы можете отправить электронное письмо через jQuery и PHP, если пользователь пометит вопрос?

Мой код JS в заголовке

jQuery('a.flag_question').live('click', function(){
    jQuery.post('/codes/handlers/flag_question.php', 
        { question_id: jQuery(this).attr('rel') });                                            
            alert ("Question was reported.");
});

Его обработчик flag_question.php, который не отправляет мне электронное письмо

$question_id = $_POST['question_id'];   // data from jQuery.post
$subject = "Flagged question"; 
$to = '"Michael Boltman <michael.boltman777@gmail.com>';
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

$message = "<a href='index.php?question_id=" . $question_id . "'>"
    . "The question " . $question_id . "</a> is flagged by an user. Please, review it.";
if ( mail( $to, $subject, $message ) ) {
    echo ("Thank you for your report!");

}

Я использовал свой реальный адрес электронной почты, в то время как в коде псевдо-один.

Ссылка генерируется PHP

    echo ("<a href='#'"
            . " class='flag_question'"
            . " rel='" . $question_id . "'>flag</a>"
        );

Ответы [ 3 ]

1 голос
/ 23 августа 2009

Ваш вызов функции PHP mail, кажется, отправляет почту на test@gmail.com. Я был бы впечатлен, если это ваш реальный адрес электронной почты, в противном случае вам нужно будет использовать свой фактический адрес электронной почты. Если вы это сделали, пожалуйста, укажите это.

Что нужно проверить:

  • Проверьте папку «спам» в Gmail, чтобы узнать, считает ли Gmail, что ваша почта является спамом. Если да, то на SO так много вопросов, которые отвечают «Как мне убедиться, что мое письмо не считается спамом?»
  • Проверьте ваш локальный MTA (что бы вы ни использовали на своем Ubuntu-боксе), чтобы увидеть, сообщает ли он, что почта была принята из вашего PHP-скрипта и правильно доставлена ​​в Gmail. Если это проблема, то serverfault.com является правильным местом для диагностики этой проблемы.
1 голос
/ 23 августа 2009

У вас может не быть почтового сервера! Обычно это происходит, когда вы используете LocalHost на вашем компьютере.

1 голос
/ 23 августа 2009

Вы можете ознакомиться с документацией для функции почты php здесь .

Примечание: Многие люди публикуют обходные пути в комментариях к документации, поскольку часто кажется, что эта функция не работает, если ваш сервер / система не настроены правильно.

Этот комментарий может быть полезен ( ссылка )

Эдвард 01 августа 2009 г. 09: 08

В настоящее время мой хостинг работает на Godaddy. При попытке использовать почтовую функцию без пятого параметра, содержащего «-f», заголовки моих сообщений не будут работать.

Если заголовки ваших сообщений не работают, попробуйте использовать пятый параметр:

<?php
mail($to, $subject, $message, $headers, "-femail.address@example.com");
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...