Использование 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'
2 answers
Вы используете неправильную переменную. Заменить $username
на $user
$inbox = imap_open($hostname,$user,$password,0,0) or die( var_dump(imap_errors ()) );
Хорошо, я чувствую себя довольно глупо. $username
- это не то же самое, что $user
. Когда я начинал с различных сценариев, я не знал о проблеме с сертификатом (разные хосты), и где-то по ходу я, без сомнения, скопировал часть одного тестового сценария и часть другого и обнаружил простую ошибку, которая была скрыта предыдущими ошибками.