{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Goodmaster * [мошенник] 3.51
[автор] (30 мар 2015, 21:19) [0/0] [0] [отв] [спам] [под] +1 | -1

Как подключится к майлу?Статья о соединялся с почтой, и с определенного раздела сам брал бы вложенные файлы, работа с почтой mail.ru через PHP
Всем привет. Когда то давно я делал функцию, точнее скрипт, который бы по крону (cron) соединялся с почтой, и с определенного раздела сам брал бы вложенные файлы. И вот сейчас на один проект, понадобилась такая же система, есть некая почта на mail.ru, на которую поставщик присылает свежие прайс-листы в xls или xlsx.
Найдя свой старый скрипт, я попробовал соединиться с mail.ru, но ничего не получилось:

Can't connect: Can't open mailbox {pop.mail.ru:110/pop3}INBOX: invalid remote specification

Так как прошло около года, я понял что у mail.ru сменились спецификации соединения. Стал искать в интернете, как нужно правильно указать, но везде устаревшие данные, так же как у меня в скрипте, используется pop3 и imap. Решив что pop3 уже не используется, я поменял строку запроса на imap и порт по умолчанию 143, на что скрипт стал ругаться мне:

Can't connect: Certificate failure for imap.mail.ru: unable to get local issuer certificate: /C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA

И судя по ошибке, mail стал использовать шифрование SSL для соединения по почте. Но что бы точно определить это я пошел в описание настроек протоколов:
http://help.mail.ru/mail-help/mailer/popsmtp

Хотя там и написано что поддерживается pop3 по 110 порту и imap по 143 порту, мы видим что imap работает через шифрование:
Порт — IMAP — 143 (при использовании шифрования STARTTLS) и 993 (при использовании шифрования SSL/TLS)

Итак меняем настройки на поддержку шифрования:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$host = 'imap.mail.ru';
$port = 993;
$login = 'loginУдалён
$pass = 'parol';
$param = '/imap/ssl/novalidate-cert';
$folder = 'INBOX';

if($mbox = imap_open("{"."{$host}:{$port}{$param}"."}$folder",$login,$pass)){
echo "Connectedn";
} else { exit ("Can't connect: " . imap_last_error() ."n"*; echo "FAIL!n"; };

?>
Проверяем, получилось, мы подключились к майлу

2.
donttime * [мошенник] 9.68
(30 мар 2015, 23:56) [0/0] [0] [отв] [спам] [под] +1 | -1

Oh my Gabe Newell.

За какой год копипаст ? *

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 0
Скачать тему | Файлы темы | Фильтр сообщений