【问题标题】:Sending email by jQuery / PHP通过 jQuery / PHP 发送电子邮件
【发布时间】:2010-11-22 00:04:04
【问题描述】:

如果用户提出问题,如何通过 jQuery 和 PHP 发送电子邮件?

我在 HEAD 中的 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>"
        );

【问题讨论】:

    标签: php jquery email


    【解决方案1】:

    您可能没有邮件服务器! 这通常发生在您在计算机上使用 LocalHost 时。

    【讨论】:

    【解决方案2】:

    您对 PHP 的 mail 函数的调用似乎将邮件发送到 test@gmail.com。如果那是您的真实电子邮件地址,我会印象深刻,否则您将需要使用您的实际电子邮件地址。如果有,请提及。

    检查事项:

    • 检查您在 gmail 上的“垃圾邮件”文件夹,看看 gmail 是否认为您的邮件是垃圾邮件。如果是这样,那么这里有很多问题可以回答"How do I make sure my email isn't considered spam?"
    • 检查您的本地 MTA(无论您在 Ubuntu 机器上运行什么),查看它是否报告邮件已从您的 PHP 脚本接受并正确传递到 Gmail。如果这是问题所在,那么 serverfault.com 是诊断该问题的正确位置。

    【讨论】:

    • @Greg:我在我的 Ubuntu 上安装了 NullMailer。 MTA 对我来说是新的。我更改了电子邮件中的详细信息,以便我的邮件不会被过滤为垃圾邮件。我以前从未使用过 MTA。 - 如何查看 NullMailer 是否已发送邮件?
    • NullMailer 是否写入日志文件来详细说明其活动?如果是这样,看看那里。如果没有,那么我不确定该建议什么,因为我不使用 NullMailer。
    【解决方案3】:

    你可以查看php邮件函数here的文档。

    注意事项:很多人在文档 cmets 中发布了解决方法,因为如果您的服务器/系统配置不正确,此功能通常似乎不起作用。

    此用户评论可能有用 (link)

    爱德华 01-Aug-2009 09:08

    目前我的托管服务在 Godaddy 上。尝试使用没有包含“-f”的第五个参数的邮件功能时,我的邮件标题将不起作用。

    每当您的邮件标题不起作用时,只需尝试使用第五个参数:

    <?php
    mail($to, $subject, $message, $headers, "-femail.address@example.com");
    ?>
    

    【讨论】:

    • 我应该把什么放到变量$headers中?
    • 尝试: $headers = 'MIME-Version: 1.0' 。 "\r\n"; $headers .= '内容类型:文本/html;字符集=iso-8859-1' 。 "\r\n";
    • 我没有收到包含您的代码的电子邮件到我的电子邮件地址。 - 这表明我的问题显然出在 MTA 中。
    猜你喜欢
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2015-09-30
    • 1970-01-01
    相关资源
    最近更新 更多