$ php -r "mail('[email protected]', 'test', 'test');"
2015/12/09 16:44:17 Using in-memory storage
2015/12/09 16:44:17 [SMTP] Binding to address: 0.0.0.0:1025
2015/12/09 16:44:17 [SMTP] Error listening on socket: listen tcp 0.0.0.0:1025: bind: address already in use
Исправлено это путем установки ssmtp и обновления /etc/php5/cli/conf.d/zzzz_custom.ini до:
;sendmail_path='/usr/local/bin/mailhog'
sendmail_path='/usr/sbin/ssmtp -t'
/etc/ssmtp/ssmtp.conf:
...
mailhub=localhost:1025
...
Возможно, есть лучшие способы, но этот сработал для меня.
Мой конфиг.yml:
http://pastebin.com/jGqghAqF
;sendmail_path='/usr/local/bin/mailhog'
Вы на самом деле хотите, чтобы это было
sendmail_path='/usr/local/bin/mailhog sendmail [email protected]'
См.: https://github.com/puphpet/puphpet/blob/master/archive/puphpet/puppet/manifests/Php.pp#L204.
К вашему сведению для тех, кто ищет, почему MailHog может не перехватывать электронные письма Php SMTP.
проверьте свои порты! если вы используете Mail::factory или другой класс для электронной почты SMTP, то он может по умолчанию использовать порт 25. Конфигурация MailHog по умолчанию использует порт 1025.
@Artistan спасибо.
в основном:
Я привык к CakePHP3 (где все немного проще расшифровать), и таким образом я мог тестировать контактные формы Zend Framework для отправки почты.
Самый полезный комментарий
Вы на самом деле хотите, чтобы это было
См.: https://github.com/puphpet/puphpet/blob/master/archive/puphpet/puppet/manifests/Php.pp#L204.