2009-08-23 7 views
2

Comment envoyer un e-mail par jQuery et PHP si l'utilisateur signale une question?Envoyer un e-mail à jQuery/PHP

Mon code JS dans la tête

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

Son gestionnaire flag_question.php qui ne me envoie pas un email

$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!"); 

} 

Je n'utilise mon adresse e-mail réelle, alors que le un dans le code est pseudo un.

Le lien est généré par PHP

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

Répondre

1

Vous ne pouvez pas avoir un serveur de messagerie! Cela se produit généralement lorsque vous utilisez un LocalHost sur votre ordinateur.

+0

J'utilise un localhost sur mon ordinateur. ** Comment pouvez-vous configurer un serveur de messagerie? ** –

+0

Ceci pour Ubuntu: https://help.ubuntu.com/community/MailServer Et ceci pour Windows: http://www.hmailserver.com/ A La liste complète des serveurs de messagerie disponibles est ici: http://en.wikipedia.org/wiki/Comparison_of_mail_servers –

1

Vous pouvez checkout la documentation pour la fonction mail de php here.

Point de la note: Il y a beaucoup de gens affichant des solutions de contournement dans les commentaires de la documentation car cette fonction semble souvent ne pas fonctionner si votre serveur/système n'est pas correctement configuré.

Ce commentaire utilisateurs pourrait être utile (link)

Edward 01-Aug-2009 09:08

Actuellement, mon service d'hébergement est sur GoDaddy. Lorsque vous essayez d'utiliser la fonction de messagerie sans le cinquième paramètre contenant "-f", mes en-têtes de message ne fonctionneraient pas.

Chaque fois que vos en-têtes de message ne fonctionnent pas, essayez simplement à l'aide du cinquième paramètre:

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

** Que dois-je mettre à la variable * $ headers *? ** –

+1

Essayez: $ headers = 'Version MIME: 1.0'. "\ r \ n"; $ en-têtes.= 'Content-type: texte/html; jeu de caractères = iso-8859-1 '. "\ r \ n"; –

+0

Je ne reçois pas d'e-mails à mon adresse e-mail avec votre code. - Cela me suggère que le problème est apparemment dans MTA. –

1

Votre appel à la fonction de PHP mail semble envoyer du courrier à [email protected]. Je serais impressionné si c'est votre vraie adresse e-mail, sinon vous devrez utiliser votre adresse e-mail réelle. Si vous l'avez fait, veuillez le mentionner.

choses à vérifier:

  • Vérifiez votre dossier "spam" sur gmail pour voir si gmail pense que votre courrier est un spam. Si oui, il y a beaucoup de questions ici sur SO qui répondent "How do I make sure my email isn't considered spam?"
  • Vérifiez votre MTA local (quoi que vous exécutez sur votre boîte Ubuntu) pour voir si elle rapporte que le courrier a été accepté à partir de votre script PHP et livré à Gmail correctement. Si tel est le problème, serverfault.com est l'emplacement approprié pour diagnostiquer ce problème.
+0

@Greg: J'ai installé NullMailer sur mon Ubuntu. Les MTA sont nouveaux pour moi. J'ai changé mes coordonnées dans l'e-mail de sorte que mon courrier ne soit pas filtré comme spam. Je n'ai jamais utilisé de MTA auparavant. - ** Comment pouvez-vous voir si NullMailer a envoyé les mails? ** –

+0

Est-ce que NullMailer écrit des fichiers journaux pour détailler son activité? Si oui, jetez un oeil là-bas. Sinon, je ne sais pas quoi suggérer, car je n'utilise pas NullMailer. –

+0

@Greg: Quel est votre MTA? –

Questions connexes