электронная почта — Использование imap_pop под php на wamp сервере 2.4

Я пытаюсь получить доступ к Gmail через PHP работает под Wampserver 2.4. Для простоты это от localhost (реальное приложение намного сложнее).

Следуя некоторым стандартным примерам, я могу получать (через pop или imap) и отправлять (через smtp) электронные письма через gmail, но ТОЛЬКО если включена функция «Менее безопасные приложения» в gmail
(https://www.google.com/settings/security/lesssecureapps). Конечно, сначала нужно включить pop и / или imap на странице настроек gmail.
(https://mail.google.com/mail/u/0/#settings/fwdandpop)

Хотя это работает, я хотел бы, чтобы php работал с «более безопасной технологией» — то есть SSL и TLS. Есть идеи?

Используется следующий код:

для получения электронной почты.

   $ato="{pop.gmail.com:995/pop3/ssl/novalidate-cert}INBOX";
$auser="[email protected]";
$apwd="mypwd";

$mbox = imap_open($ato,$auser,$apwd,NULL,1)   or die("can't connect: " . print_r(imap_errors())); // just do one login

$stuff=imap_check($mbox); // get and print basic information (such as # of emails)
var_dump($stuff);

и для отправки электронной почты (используя пакет PEAR)
Обратите внимание, что для того, чтобы следующее работало, мне сначала нужно было включить настройку php php_openssl (используя опцию php — phpSettings во всплывающем меню wampserver).

 require_once "Mail.php";

$from = '[email protected]';
$to = '[email protected] ';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";

$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject
);

$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '[email protected]',
'password' => 'mypwd'
));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
echo('<p>' . $mail->getMessage() . '</p>');
} else {
echo('<p>Message successfully sent!</p>');
}

Основываясь на различных публикациях, я попытался включить ssl_module и imagemap_module под расширениями apache; и php_sockets в настройках php. Они не имели никакого значения. Я читал, что настройка php с imap-ssl может иметь значение, но я не знаю, как это сделать.

Вот правильный ответ, который я получаю, используя приведенный выше пример всплывающего окна (используя мое имя пользователя и пароль) — когда в gmail включен «доступ к менее защищенным приложениям»:

    object(stdClass)[1]
public 'Date' => string 'Thu, 22 Jan 2015 01:06:37 -0500 (Eastern Standard Time)' (length=55)
public 'Driver' => string 'pop3' (length=4)
public 'Mailbox' => string '{gmail-pop.l.google.com:995/pop3/notls/ssl/novalidate-cert/user="[email protected]"}INBOX' (length=99)
public 'Nmsgs' => int 153
public 'Recent' => int 1

и когда я отключаю «менее безопасные приложения»

Array ( [0] => [AUTH] Web login required: https://support.google.com/mail/bin/answer.py?answer=78754 [1] => Too many login failures ) can't connect: 1

Кстати: используя IMAP
$ Ато = «{imap.gmail.com:993/imap/imap/ssl}INBOX»;
выходы:

Array ( [0] => Can't open mailbox {imap.gmail.com:993/imap/imap/ssl}INBOX: invalid remote specification ) can't connect: 1

1

Решение

Gmail считает безопасным только метод входа в OAUTH2. Подробности смотрите в следующей статье: https://developers.google.com/gmail/xoauth2_protocol

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]