2014-02-07 5 views
0

В настоящее время я делаю проект, но я все еще работаю на локальной машине. Проблема заключается в том, что я не могу подключить GMAIL почтовый ящик с помощью этого plugincakePHP- Клиент электронной почты: Чтение почтового ящика gmail на localhost

Реальная проблема в том, что я не знаю код для подключения с аккаунта Gmail на локальном хосте с помощью плагина. У меня есть это в моей конфигурации:

public $emailTicket = array(
     'datasource' => 'ImapSource', 
     'server' => 'localhost', 
     'connect' => 'imap/tls/novalidate-cert', 
     'username' => '************@gmail.com', 
     'password' => '*********', 
     'port' => '143', //incoming port 
     'ssl' => false, 
     'encoding' => 'UTF-8', 
     'error_handler' => 'php', 
     'auto_mark_as' => array(
     'Seen', 
     // 'Answered', 
     // 'Flagged', 
     // 'Deleted', 
     // 'Draft', 
     ), 
    ); 

Затем торт возвращает ошибку: Error: Unable to get imap_thread after 4 retries. 'Can't connect to **localhostName**,143: Refused

Любой знает правильный способ сделать это? Или, если это возможно, я продолжаю работать над этим на localmachine, если да, то как?

[EDIT]

В коде плагина, это то, как он готовит параметры для imap_open РНР():

case 'imap': 
       $this->_connectionString = sprintf(
        '{%s:%s%s%s}', 
        $this->config['server'], 
        $this->config['port'], 
        @$this->config['ssl'] ? '/ssl' : '', 
        @$this->config['connect'] ? '/' . @$this->config['connect'] : '' 
       ); 
       break; 

$retries = 0; 
      while (($retries++) < $this->config['retry'] && !$this->thread) { 
       $this->Stream = imap_open($this->_connectionString, $this->config['username'], $this->config['password']); 
       $this->thread = @imap_thread($this->Stream); 
      } 
+0

что-то вроде [этой ссылке] (http://stackoverflow.com/questions/712392/send-email-using -gmail-SMTP-сервер из-PHP-страницы)? – loveNoHate

+0

@dollarvar Привет, сэр, Нет, я пытаюсь прочитать электронные письма, используя php imap (или, скорее, использование плагином php's [imap_open] (http://www.php.net/imap_open)). Идея состоит в том, чтобы создать мини-клиент электронной почты в приложении – LogixMaster

+0

Хорошо, я попытался это сделать Google, но, полагаю, вам нужен «IP» или какой-то адрес из Googlemail вместо localhost? – loveNoHate

ответ

1

Вы должны использовать параметры сервера входящей электронной почты Gmail по протоколу IMAP:

public $emailTicket = array(
     'datasource' => 'ImapSource', 
     'server' => 'imap.gmail.com', 
     'connect' => 'imap/tls/novalidate-cert', 
     'username' => '************@gmail.com', 
     'password' => '*********', 
     'port' => '993', //incoming port 
     'ssl' => true, 
     'encoding' => 'UTF-8', 
     'error_handler' => 'php', 
     'auto_mark_as' => array(
     'Seen', 
     // 'Answered', 
     // 'Flagged', 
     // 'Deleted', 
     // 'Draft', 
     ), 
    ); 

И конечно же включить IMAP на вашем аккаунте GMAIL ...

+0

Спасибо, что ответили! Я пробовал это, и это возвращает: 'Ошибка: не удалось получить imap_thread после 4 попыток. '[ЗАКРЫТО] Соединение IMAP сломано (ответ сервера) «Любые идеи, почему это происходит? – LogixMaster

+1

@ user2678538 Вы включили IMAP в свой аккаунт gmail? Попробуйте отладить плагин и посмотрите: http://www.php.net/manual/en/function.imap-open.php –

+0

Да, у меня есть imap включен в Google. Я также уже посмотрел на php imap_open. Я перепутал с плагином, чтобы посмотреть, как он подготовил строку подключения для метода imap_open! Я отредактировал мой вопрос, чтобы показать это. Кроме того, я нашел это http://forums.phpfreaks.com/topic/99250-solved-imap-open-imap-connection-broken-problem/, но Im не уверен, что его проблема, возможно, придется попробовать! – LogixMaster

-1
class EmailConfig { 
    public $gmail = array(
     'host' => 'ssl://smtp.gmail.com', 
     'port' => 465, 
     'username' => '[email protected]', 
     'password' => 'secret', 
     'transport' => 'Smtp' 
    ); 
} 

для действия контроллера

App::uses('CakeEmail', 'Network/Email'); 
$email = new CakeEmail('gmail'); 

Для Помогая Ссылка
http://book.cakephp.org/2.0/en/core-utility-libraries/email.html http://www.shahariaazam.com/send-email-from-localhost-in-cakephp-using-cakeemail/#

+0

Я хочу читать письма из gmail, используя Imap, чтобы не отправлять электронную почту через сервер apache. Спасибо хоть :) – LogixMaster

Смежные вопросы