Здравствуйте. Наш КП работает на BitrixVM 4.3, которая стоит на VMWare Workstation. Пытался настроить почту (как стандартными средствами из меню, так и по этой инструкции). Ничего не выходит, почта не отправляется. При тестировании функции с помощью команды php -r "mail('test@mail.ru', 'Test', 'Test');" либо ничего не происходит (приходится прерывать выполнение команды нажатием Ctrl+C), либо выдается ошибка о том, что ни один адрес не ассоциирован с адресом smtp.googlemail.com ("no address associated with hostname smtp.googlemail.com"). Однако, при запуске команды ping на сервере, все адреса пингуются, включая SMTP-сервер. Подскажите, в чем может быть проблема? Очень срочно необходимо настроить почтовые уведомления.
1. При исполнении php -r "mail('test@mail.ru', 'Test01', 'Test02');" почтовый адрес получателя, указанный как 'test@mail.ru', должен существовать. То есть это тот адрес, куда поступит письмо 'Test01' с содержанием 'Test02'. Надеюсь, что это понятно всем и я это ляпнул как вступление. 2. Правильная конфигурация msmtp, которая лежит в корне домашнего каталога пользователя ~/.msmtprc имеет такое содержание:
Код
account default
auth on
tls on
tls_trust_file /etc/ssl/certs/gmail.crt
keepbcc on
host smtp.gmail.com
port 587
from UserName@gmail.com
user UserName@gmail.com
password UserPassword
logfile /home/bitrix/msmtp_default.log
где UserName - аккаунт в гугле (ваш ник), а UserPassword - пароль к вашему аккаунту. ещё тут интересна строчка:
Код
tls_trust_file /etc/ssl/certs/gmail.crt
в виртуальной машине файла gmail.crt нет и не ищите. Его надо скачать. Например, с GeoTrust:
Для справки: компания GeoTrust — это второй по величине в мире поставщик SSL-сертификатов. Сертификаты от GeoTrust отлично подходят для небольших компаний, которые желают подтвердить безопасность своего сайта перед своими клиентами. Это не реклама. Просто оттуда можно взять, и я указал что. А потом это надо положить куда следует:
В принципе, это всё равно куда вы его положите. Лишь бы он там был и читался. Но лучше положить туда, куда надо, то есть к сертификатам. Пусть сертификаты лежат в одном месте, для порядка.
2. Дальше интереснее. При первой и последующих попытках отправить тестовое сообщение из консоли через gmail на любой существующий адрес вы можете получать на экран несколько "ругательных" строк от google. Ключевым там будет сообщение, что ваш пароль PLAIN и это нехорошо. Будут ссылки на вопросы-ответы от гугла и всякое такое. Не торопитесь формировать .netrc, чтоб убрать пароль из конфигурационного файла msmtp. Лучше зайдите в эту свою почту на gmail (через которую отправляете) и посмотрите что там будет. А там будет вот что:
И всё сразу стало понятно. Надо кое-что разрешить. Разумеется, если это не противоречит вашему пониманию безопасности при работе с электронной почтой гугла.
От себя добавлю, что у меня и релей и через Яндекс не получался до тех самых пор, пока я не додумался открыть аккаунт через веб, и зайти в паспорт, и тут же отослать через этот аккаунт почту из виртуальной машины. И всё пошло. И до сих пор идёт. И без указания на "самопальный" сертификат, как описано в этой теме.