Использование PHP с IMAP для проверки POP3 "синтаксическая ошибка"


Я пытаюсь подключиться к учетной записи электронной почты pop3, размещенной на хостинге моего веб-сайта. Мой веб-сайт является общим хостингом. Хост электронной почты, на котором я проверяю свои электронные письма в Windows Live, является mail.mysite.com с портом 110, и он отлично работает.

С использованием php и imap мне не повезло. Я проверил, и у моего хоста действительно установлен IMAP. После этого я боролся с ним в течение нескольких часов и узнал, что когда imap_open терпит неудачу, он пытается еще 3 раза просто для удовольствия. Как я начал с imap_last_error() в качестве средства проверки ошибок, это говорил мне Cannot connect to Mail: Too many login failures Как только я понял, что происходит, мне не потребовалось много времени, чтобы понять, как получить остальные ошибки, а затем как отключить его, чтобы он не повторялся.

Теперь я получаю syntax error Я перепробовал десятки и десятки различных вариантов имени хоста. Ниже я включаю 4, чтобы люди могли увидеть некоторые из более разумных вещей, которые я пробовал, и результаты.

Поскольку я совершенно новичок в этом, я, вероятно, упускаю что-то очевидное для кого-то с большим опытом. Я также открыт для другие способы сделать это. Я просто хочу иметь возможность использовать php-скрипт для открытия и чтения электронных писем в определенной учетной записи. Я не придирчив к тому, какой или какой интерфейс. Я пробовал IMAP, так как это единственное, что я нашел.

//$hostname   = '{mail.mysite.com:110}INBOX'; //array(1) { [0]=> string(49) "[CLOSED] IMAP connection broken (server response)" }
//$hostname   = '{mail.mysite.com:110/pop3}INBOX'; //array(1) { [0]=> string(142) "Certificate failure for mail.mysite.com: Server name does not match certificate: /OU=Domain Control Validated/CN=*.websitesource.net" }
$hostname   = "{mail.mysite.com:110/pop3/novalidate-cert}INBOX"; //array(1) { [0]=> string(12) "syntax error" }
//$hostname   = '{mail.websitesource.net:110/pop3}INBOX'; //array(1) { [0]=> string(12) "syntax error" }

//A temp account for testing
$user       = '[email protected]';
$password       = '12345678!';

/* try to connect */
$inbox = imap_open($hostname,$username,$password,0,0) or die( var_dump(imap_errors ()) );

 //see errors at top of code, current error 'syntax error'
Author: Brandan, 2016-01-16

2 answers

Вы используете неправильную переменную. Заменить $username на $user

$inbox = imap_open($hostname,$user,$password,0,0) or die( var_dump(imap_errors ()) );
 0
Author: user3284463, 2016-01-16 06:35:59

Хорошо, я чувствую себя довольно глупо. $username - это не то же самое, что $user. Когда я начинал с различных сценариев, я не знал о проблеме с сертификатом (разные хосты), и где-то по ходу я, без сомнения, скопировал часть одного тестового сценария и часть другого и обнаружил простую ошибку, которая была скрыта предыдущими ошибками.

 0
Author: Brandan, 2016-01-16 06:18:18