Comment implémenter l'API Gmail OAuth pour envoyer des emails (notamment via SMTP)?

Je suis de développement d'une application web qui permettra d'envoyer des e-mails au nom de l'utilisateur connecté.

Je suis en train d'utiliser le nouveau Gmail protocole d'authentification OAuth a annoncé décrit ici pour envoyer ces e-mails par l'utilisateur du compte Gmail (de préférence à l'aide de SMTP plutôt que IMAP, mais je suis facile). Toutefois, l'exemple de code PHP me donne un couple de problèmes.

  1. Tous les exemples de code est basé sur le protocole IMAP, pas de SMTP. Pourquoi "soutien" le protocole SMTP si vous n'allez pas à montrer aux gens comment l'utiliser?
  2. L'exemple de code me donne une erreur fatale à partir d'une portion non utilisée du Zend exception -- il ne peut pas trouver la "BOÎTE de réception" le dossier.

Fatal error: Uncaught exception 'Zend_Mail_Storage_Exception' avec le message "impossible de changer de dossier, peut-être que ça n'existe pas" en chemin\vers\xoauth-php-samples\Zend\Mail\Stockage\Imap.php:467 Stack trace: #0 path\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php(248): Zend_Mail_Storage_Imap->selectFolder('BOÎTE de réception') #1 path\to\xoauth-php-samples\three-legged.php(184): Zend_Mail_Storage_Imap->__construct(Objet(Zend_Mail_Protocol_Imap)) #2 {principal} Prochaine exception Zend_Mail_Storage_Exception' with message 'impossible de sélectionner la BOÎTE de réception, est-ce un transport valable?" dans la chemin\vers\xoauth-php-samples\Zend\Mail\Stockage\Imap.php:254 Stack trace: #0 path\to\xoauth-php-samples\three-legged.php(184): Zend_Mail_Storage_Imap->__construct(Objet(Zend_Mail_Protocol_Imap)) #1 {principal} dans path\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php sur la ligne 254

J'ai vérifié que je suis de bonne OAuth jetons en arrière, je ne sais pas comment conclure la transaction électronique arriver. Ce protocole est encore assez nouveau, donc il n'y a pas beaucoup non officiel de la communauté de la documentation à ce sujet, et les docs officielles sont unhelpfully sec des choses à propos de la RFC SMTP. Donc, si quelqu'un peut aider à obtenir ce que ça va, j'en serais très heureux.

Remarque: j'ai déjà été en mesure de se connecter à Gmail serveur SMTP via SSL et envoyer un e-mail, à condition que l'utilisateur a donné à ma demande son nom d'utilisateur Gmail et mot de passe. Je voudrais éviter cette méthode, car elle encourage le phishing et soucieux de la sécurité des utilisateurs ne sera pas l'accepter. Cette question n'est pas à ce sujet.

source d'informationauteur Curtis Gibby