Sto sviluppando un'applicazione web che invierà e-mail per conto di un utente che ha effettuato l'accesso.Come implementare l'API OAuth di Gmail per inviare email (soprattutto via SMTP)?
Sto cercando di utilizzare il nuovo protocollo OAuth di Gmail annunciato descritto here per inviare queste e-mail tramite l'account Gmail dell'utente (preferibilmente utilizzando SMTP anziché IMAP, ma sono semplice). Tuttavia, il codice PHP di esempio mi dà un paio di problemi.
- Tutto il codice di esempio è basato su IMAP, non SMTP. Perché "supportare" il protocollo SMTP se non hai intenzione di mostrare alle persone come usarlo?
- Il codice di esempio mi dà un errore irreversibile da un'eccezione Zend non rilevata: non riesce a trovare la cartella "INBOX".
Fatal error: Uncaught exception 'Zend_Mail_Storage_Exception' with message 'cannot change folder, maybe it does not exist' in path\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php:467 Stack trace: #0 path\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php(248): Zend_Mail_Storage_Imap->selectFolder('INBOX') #1 path\to\xoauth-php-samples\three-legged.php(184): Zend_Mail_Storage_Imap->__construct(Object(Zend_Mail_Protocol_Imap)) #2 {main} Next exception 'Zend_Mail_Storage_Exception' with message 'cannot select INBOX, is this a valid transport?' in path\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php:254 Stack trace: #0 path\to\xoauth-php-samples\three-legged.php(184): Zend_Mail_Storage_Imap->__construct(Object(Zend_Mail_Protocol_Imap)) #1 {main} in path\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php on line 254
Ho verificato che sto diventando buono OAuth gettoni di nuovo, solo che non so come fare accadere la transazione e-mail vera e propria. Questo protocollo è ancora piuttosto nuovo, quindi non c'è molta documentazione della comunità non ufficiale su di esso là fuori, e i documenti ufficiali sono roba inutilmente secca sulla RFC SMTP. Quindi, se qualcuno può aiutare a farlo funzionare, lo apprezzerei molto.
Nota: Sono già stato in grado di connettersi al server SMTP di Gmail tramite SSL e inviare correttamente un'e-mail, a condizione che l'utente abbia fornito alla mia applicazione il nome utente e la password di Gmail. Mi piacerebbe evitare questo metodo, perché incoraggia gli utenti di phishing e di sicurezza a non accettarlo. Questa domanda non riguarda questo.
Poiché sono nuovo, il filtro antispam di Stack Overflow mi ha fatto rimuovere i collegamenti all'annuncio OAuth di Gmail (http://googlecode.blogspot.com/2010/03/oauth-access-to-imapsmtp-in-gmail .html) e codice di esempio (http://code.google.com/p/google-mail-xoauth-tools/wiki/PhpSampleCode). –
puoi realizzare un'applicazione web che manda email usando tramite gmail tramite javascript da solo. Come dire ai server di Gmail di inviarlo per l'utente. –