Problème avec PHP PEAR Mail
Je suis en train d'utiliser PEAR Mail à envoyer à l'aide d'un serveur smtp externe. Il semble se bloquer pendant un certain temps, puis le script se termine. Il sort tous les de mes "echo" états jusqu'à l'une après l'envoi. Rien n'est sortie passé l'écho qui dit "avant de les envoyer". Quelqu'un peut me dire ce qui ne va pas ici? (valeurs factices substitué smtp valeurs). Le courrier n'est pas envoyé. Merci pour votre aide!
echo "start";
$n = $_POST['txtName'];
$e = $_POST['txtEmail'];
$t = 'Kenny <[email protected]>';
$f = 'Kenny <[email protected]>';
$s = 'CPA TEST';
$b = "name: $n email: $e";
include("mail.php");
echo "after include";
/* mail setup recipients, subject etc */
$recipients = $t;
$headers["From"] = $f;
$headers["To"] = $t;
$headers["Subject"] = $s;
$mailmsg = $b;
/* SMTP server name, port, user/passwd */
$smtpinfo["host"] = "my_smtp_host";
$smtpinfo["port"] = "25";
$smtpinfo["auth"] = true;
$smtpinfo["username"] = "my_email";
$smtpinfo["password"] = "my_password";
echo "before object";
/* Create the mail object using the Mail::factory method */
$mail_object =& Mail::factory("smtp", $smtpinfo);
echo "before send";
/* Ok send mail */
$send = $mail_object->send($recipients, $headers, $mailmsg);
echo "after send";
if (PEAR::isError($send)) { print($send->getMessage());}else{print "end";}
echo "done";
OriginalL'auteur Kenny | 2010-02-17
Vous devez vous connecter pour publier un commentaire.
Essayez ceci pour s'assurer que votre courrier de travail:
Si cela ne fonctionne pas, alors vous aurez besoin de vérifier votre Configuration de PHP.
Voir http://php.net/manual/en/function.mail.php pour plus d'informations.
Bonjour. J'ai testé ton script et il a le même effet que le "réel" du code. Il se bloque, pas de mises en garde, pas d'erreurs. ma config php contient error_reporting = E_ALL | E_STRICT et display_errors = on. Toutes les autres suggestions?
Suivez le Rap et Jayme Dunlap des conseils en cours d'exécution sur la ligne de commande pour voir l'erreur.
OriginalL'auteur Todd Moses
Si quelqu'un est en cours d'exécution sur linux et fonctionne dans le même problème que Jayme. Voici une solution simple pour installer le manque de "Net/" des classes. Ces classes manquantes provoque le script pour l'interrompre.
sudo pear install Net_SMTP
C'était ma solution. Merci 😉
Cela a fonctionné pour moi aussi! Merci
Sur windows, c'était juste
pear install Net_SMTP
mais cela m'a aidé quand même!OriginalL'auteur Vynz
J'ai rencontré le même problème, où elle a accroché sur la commande envoyer. Ma première étape a été de courir à partir de la ligne de commande pour voir le message d'erreur complet (Rap comme suggéré ci-dessus).
Il crache la suite
J'ai téléchargé le suivant, et les mettre dans /Net
http://pear.php.net/package/Net_SMTP/download
http://pear.php.net/package/Net_Socket/download
J'ai eu à régler les autorisations du serveur SMTP et de la Prise des bibliothèques afin qu'ils puissent être lus par Apache.
Et le tour est joué, il a travaillé!
sudo pear install Net_SMTP
si pouvez exécuter la poire à partir de la ligne de commande 🙂Vous rock de l'homme!
OriginalL'auteur Jayme Dunlap
La réinstallation de canal://pear.php.net/Mail-1.2.0 ne marche pas pour moi.(Ubuntu 12.04)
Il suffit de retirer le caractère "&" avant que de nouvelles
OriginalL'auteur ericL
De Todd script est excellent, mais ne permettra pas de résoudre votre problème, qui est que votre navigateur arrive à expiration avant que le SMTP n'. C'est pourquoi vous ne voyez que la moitié de votre page et ne voient pas les messages d'erreur que vous pouvez utiliser pour déboguer vos paramètres SMTP.
La solution est de lancer le script PHP directement. Pas de délai d'attente.
Si vous ne pouvez pas le faire parce que votre FAI ne vous donne pas accès au shell, créer une tâche cron pour exécuter toutes les minutes. Cron communiquera par courrier électronique la sortie à vous qui aurez le plein de débogage de détails.
OriginalL'auteur Rap
En fait, j'ai rencontré le même problème. Une production de script est tombé en panne, et j'ai eu le plus de mal à le dépannage. Principalement parce que il y avait beaucoup de code qui a empêché les erreurs d'apparaître. En fin de compte, j'ai utilisé Kenny Ray code, modifié à travailler pour mon environnement, et a couru un test. Il s'est avéré que la Net_Socket en quelque sorte disparu. Je l'ai désinstallé et ré-installé, et tout a commencé à travailler à nouveau. J'espère que cela vous aide.
OriginalL'auteur Jackson Leung