Question

J'essaie d'implémenter le package Mail_queue de Pear pour faire la queue de certains e-mails pour une application Web. J'ai utilisé la documentation à http://pear.php.net/manual/en/package.mail.mail-queue.mail-queue.tutorial.php Pour écrire un petit script de test.

Mon problème est que la base de données n'est pas mise à jour et qu'elle ne produit pas d'erreurs.

ÉDITER

// mail_queue db options
$db_options['type'] = 'mdb2';
$db_options['dsn'] = DSN;
$db_options['mail_table'] = 'mail_queue';

// mail_queue sending options
$mail_options['driver'] = 'smtp';
$mail_options['host'] = 'smtp.gmail.com';
$mail_options['port'] = 25;
$mail_options['localhost'] = $host;
$mail_options['auth'] = true;
$mail_options['user'] = MAILUSER;
$mail_options['pass'] = MAILPASS;

require "Queue.php";

$mail_queue =& new Mail_Queue($db_options,$mail_options);

$from = 'someone@domain.ca';
$to = 'martin@starmedia.ca';
$message = 'This is a test';

$headers = array('From' => $from,
    'To' => $to,
    'Subject' => 'Someone has sent you an email!');

$mime =& new Mail_mime();
$mime->setTXTBody($message);
$body = $mime->get();

$headers = $mime->headers($headers,true);
print $mail_queue->put($from,$to,$headers,$body);

Cela produit l'erreur Mail Queue Error: Cannot connect to database . Cependant, j'ai vérifié toutes les informations de connexion et c'est correct. Aussi, ajoutant if (PEAR::isError($mail)) die($mail->getMessage()); ne produit aucune erreur!

Était-ce utile?

La solution

Ok, j'ai enfin mon fichier de file d'attente de courrier. Voici les étapes que j'ai prises pour le faire fonctionner:

1. Activer les messages d'erreur

Pour activer la gestion des erreurs, j'ai ajouté cet extrait:

function handle_pear_error($e) {
    die($e->getMessage() . ' ' . print_r($e->getUserInfo(), true));
}
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handle_pear_error');

Une fois que j'ai ajouté cela, j'ai rechargé la page et j'obtenais l'erreur suivante:

Call to undefined function: MDB2_Driver_mysql::_isNewLinkSet()

2. Mettre à jour le pilote MySQL de MDB2

J'ai recherché cette erreur et j'ai constaté que c'est généralement le résultat de ne pas avoir de bibliothèque MDB2 à jour ou son pilote MySQL.

J'ai donc mis à jour les deux et ça marche!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top