Comment envoyer un message électronique à partir d'un compte IMAP avec PHP?

Je vais avoir un problème lors de l'envoi de mails via PHP/IMAP - et je ne sais pas si c'est parce que:

  • Je n'ai pas de comprendre correctement IMAP, ou
  • il y a un problème avec mon serveur

Mon application ouvre une connexion IMAP à un compte de messagerie pour lire les messages dans la boîte de réception. Il le fait avec succès. Le problème que j'ai c'est que je veux envoyer des messages à partir de ce compte et de les afficher dans la boîte d'envoi/dossier envoyés.

Autant que je peux dire, le PHP imap_mail() la fonction n'est pas en aucune façon crochet dans le flux IMAP j'ai actuellement ouvert.

Mon code s'exécute sans jeter une erreur. Cependant, l'e-mail n'arrive jamais au destinataire et n'affiche jamais dans mon dossier envoyé.

private function createHeaders() {
    return "MIME-Version: 1.0" . "\r\n" .
        "Content-type: text/html; charset=iso-8859-1" . "\r\n" .
        "From: " . $this->accountEmail . "\r\n";
}

private function notifyAdminForCompleteSet($urlToCompleteSet) {
    $message = "
        <p>
            In order to process the latest records, you must visit
            <a href='$urlToCompleteSet'>the website</a> and manually export the set.
        </p>
    ";

    try {
        imap_mail(
            $this->adminEmail,
            "Alert: Manual Export of Records Required",
            wordwrap($message, 70),
            $this->createHeaders()
        );
        echo("   ---> Admin notified via email!\n");
    }
    catch (Exception $e) {
        throw new Exception("Error in notifyAdminForCompleteSet()");
    }
}

Je suppose que j'ai besoin de copier le message dans le compte IMAP à la main... ou est-il une autre solution à ce problème?

Aussi, importe-t-il si le domaine dans l'adresse "de" est différent de celui du serveur sur whicn ce script est en cours d'exécution? Je ne peux pas expliquer pourquoi le message n'est jamais envoyé.

OriginalL'auteur arthurakay | 2010-12-22