Многие сталкивались с проблемой отправки сообщений с сервера из bash/perl/python/php/etc...
На самом это достаточно просто.
Достаточно поставить sendmail.
В принципе вы уже можете отправлять почту, но по умолчанию в конфигурации указано что вы отправляете почту с хоста localhost.localdomainyum install sendmail sendmail-cf -y chkconfig --level 345 sendmail on /etc/init.d/sendmail start Starting sendmail: [ OK ] Starting sm-client: [ OK ]
Следующая секция составлена с учётом того что ваш hostname в системе настроен верно.
Настроить эту системную переменой в CentOS вы можете в файле
/etc/sysconfig/network
Проверить какой у вас сейчас hostname, как не странно можно командой hostname =))
Итак вносим изменения в конфигурацию sendmail
sed -i -e "s/^LOCAL_DOMAIN.*$/LOCAL_DOMAIN(\`${HOSTNAME}\')dnl/g" /etc/mail/sendmail.mc make -C /etc/mail /etc/init.d/sendmail restart Shutting down sm-client: [ OK ] Shutting down sendmail: [ OK ] Starting sendmail: [ OK ] Starting sm-client: [ OK ]
Настало время протестировать что у нас получилось.
соответственно подставьте свой email вместо user@domain.com
Всё можете идти в почту, и проверять свой спам, Поскольку это письмо скорее всего окажется в нём. По скольку A запись и PTR запись DNS, должны совпадать с вашим внешним IP. Да кстати, эта конструкция может работать через NAT.echo "The test body" | mail -s "The test subject" user@domain.com
Примечание:
в Gmail.com это письмо скорее всего попадёт в спам, а до ящика Mail.ru вовсе не дойдёт потому, что Администрация Mail.ru пытается защитить своих хомячков от всевозможных спамов.
it works, many thanks
ОтветитьУдалить