Я пытаюсь настроить электронную почту с постфиксное изображение и msmtp из php. Отправка писем из командной строки работает из контейнера wordpress в postfix с использованием msmtp (я использую docker compose, но я думаю, что это не связано). Но в php это не работает.
Журнал Postfix показывает это:
Feb 14 12:00:09 36a1774df087 postfix/smtpd[141]: connect from volume_wordpress_1.volume_default[172.23.0.4]
Feb 14 12:00:09 36a1774df087 postfix/smtpd[141]: warning: Illegal address syntax from volume_wordpress_1.volume_default[172.23.0.4] in MAIL command: <wordpress@10.39.91.81>
Feb 14 12:00:09 36a1774df087 postfix/smtpd[141]: disconnect from volume_wordpress_1.volume_default[172.23.0.4]
Feb 14 12:03:29 36a1774df087 postfix/anvil[143]: statistics: max connection rate 1/60s for (smtp:172.23.0.4) at Feb 14 11:58:44
Feb 14 12:03:29 36a1774df087 postfix/anvil[143]: statistics: max connection count 1 for (smtp:172.23.0.4) at Feb 14 11:58:44
Feb 14 12:03:29 36a1774df087 postfix/anvil[143]: statistics: max cache size 1 at Feb 14 11:58:44
Конфигурация php выглядит так:
sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t -i"
Та же команда работает, когда я запускаю ее с терминала. Но с php отображается ошибка выше.
Нужно ли мне менять wordpress@10.39.91.81 (это общедоступный адрес компьютера в интрасети, wordpress - это имя службы в docker-compose.yml)? Как я могу это сделать?
Я нашел проблему в ответе на этот вопрос на StackOveflow Отправка почты через терминал с использованием msmtp работает нормально, но не работает с php mail ()
Проблема заключалась в разрешении файла на / etc / msmtprc, которым владел root, выполняя:
chown www-data:www-data /etc/msmtprc
chmod 600 /etc/msmtprc
исправил проблему