Я разрабатываю веб-приложение, которое будет отправлять электронные письма от имени зарегистрированного пользователя.
Я пытаюсь использовать новый протокол Gmail OAuth, описанный здесь, чтобы отправить эти письма через учетную запись пользователя Gmail (предпочтительно используя SMTP, а чем IMAP, но мне легко). Однако пример кода PHP дает мне несколько проблем.
- Все примеры кода основаны на IMAP, а не на SMTP. Зачем "поддерживать" протокол SMTP, если вы не собираетесь показывать людям, как его использовать?
- Образец кода дает мне фатальную ошибку из неперехваченного исключения Zend - он не может найти папку "INBOX".
Неустранимая ошибка: исключение "Zend_Mail_Storage_Exception" с сообщением "невозможно изменить папку, возможно, она не существует" в пути \to\xoauth-php-samples\Zend\Mail\Storage\Imap.php: 467 Трассировка стека: 0 путь \to\xoauth-php-samples\Zend\Mail\Storage\Imap.php(248): Zend_Mail_Storage_Imap- > selectFolder ('INBOX') # 1 путь \to\xoauth-php-samples\three-legged.php(184): Zend_Mail_Storage_Imap → __ construct (Object (Zend_Mail_Protocol_Imap)) # 2 {main} Следующее исключение "Zend_Mail_Storage_Exception" с сообщением "не может выбрать INBOX, это действительный транспорт?" в пути \to\xoauth-php-samples\Zend\Mail\Storage\Imap.php: 254 Трассировка стека: путь # 0\to\xoauth-php-samples\three-legged.php(184): Zend_Mail_Storage_Imap → __ construct (Object (Zend_Mail_Protocol_Imap)) # 1 {main} в пути \to\xoauth-php-samples\Zend\Mail\Storage\Imap.php в строке 254
Я проверил, что я получаю хорошие токены OAuth, я просто не знаю, как сделать реальную транзакцию электронной почты. Этот протокол по-прежнему является довольно новым, поэтому там не так много неофициальной документации сообщества, и официальные документы - бесполезно сухие вещи о SMTP RFC. Поэтому, если кто-то может помочь в этом, я бы очень признателен.
Примечание. Я уже смог подключиться к SMTP-серверу Gmail через SSL и успешно отправить электронное письмо при условии, что пользователь предоставил моему приложению свое имя пользователя и пароль Gmail. Я бы хотел избежать этого метода, потому что он поощряет пользователей фишинга и безопасности, которые не будут его принимать. Этот вопрос не об этом.