通过jQuery/PHP发送电子邮件

通过jQuery/PHP发送电子邮件

问题描述:

如果用户标记问题,如何通过jQuery和PHP发送电子邮件?通过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 <[email protected]>'; 
$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>" 
     ); 

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

+0

我在我的电脑上使用本地主机。 **如何设置邮件服务器?** – 2009-08-23 17:44:16

+0

这对于Ubuntu:https://help.ubuntu.com/community/MailServer 而这个适用于windows:http://www.hmailserver.com/ A可用电子邮件服务器的完整列表如下:http://en.wikipedia.org/wiki/Comparison_of_mail_servers – 2009-08-24 09:37:26

产生可以检出的PHP的邮件功能here的文档。

注意项目:有许多人张贴在文档注释解决方法,因为这种功能通常似乎如果你的服务器/系统未正确配置到不行。

此用户的评论可能是有用的(link

爱德华01 - 8月2009年9点08

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

每当你的邮件标头不工作,只是尝试使用第五个参数:

<?php 
mail($to, $subject, $message, $headers, "[email protected]"); 
?> 
+0

**我该给变量添加什么* $标题*?** – 2009-08-23 04:01:42

+1

尝试: $ headers ='MIME-Version:1.0'。为 “\ r \ n” 个; $标题。='Content-type:text/html; charset = iso-8859-1'。为 “\ r \ n” 个; – 2009-08-23 04:07:12

+0

我的电子邮件地址没有收到电子邮件。 - 这表明这个问题显然在MTA中。 – 2009-08-23 04:33:47

您对PHP的mail函数调用似乎将邮件发送到[email protected]。如果那是你的真实电子邮件地址,我会留下深刻的印象,否则你将需要使用你真实的电子邮件地址。如果你有,请提及。

检查事项:

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

@Greg:我在我的Ubuntu上安装了NullMailer。 MTA对我来说是新的。我在电子邮件中更改了我的详细信息,以便我的邮件不会被过滤为垃圾邮件。我以前从未使用过MTA。 - **你如何看到NullMailer是否发送了邮件?** – 2009-08-23 04:01:12

+0

NullMailer是否会写入日志文件来详细说明其活动?如果是这样,那么看看那里。如果不是,那么我不知道该怎么建议,因为我不使用NullMailer。 – 2009-08-23 04:32:48

+0

@Greg:你的MTA是什么? – 2009-08-23 05:05:16