Назад | Перейти на главную страницу

конфигурация sendmail?

Я хочу отправить электронное письмо из программы на C ++.

Я хочу сделать это с помощью sendmail. Ну вообще-то мне все равно как, я только что обнаружил, что ни одна из библиотек smtp не работает ...

Я нашел через Google способ сделать это:

echo "This will go into the body of the mail." | mail -s "Subject line" you@youremailid.com

Проблема в том, что почта никогда не приходит по назначению. Что мне показалось странным: разве не нужен URL-адрес smtp-сервера? Например, smtp.my-provider.com:25?

Sendmail попытается найти MX-запись домена, на который вы отправляете сообщения, поэтому вам не нужно указывать адрес или имя хоста SMTP-сервера по умолчанию. Если вам действительно нужно принудительно указать конкретный адрес, это можно сделать через DNS или запись в файле почтовой таблицы Sendmail.

Сначала вы должны попытаться определить, что случилось с вашим исходным сообщением. Попробуйте отправить из своего приложения и запустить:

tail -f /var/log/maillog

Вы также можете просмотреть почтовую очередь напрямую с помощью команды «mailq». Если эта команда возвращает вывод, вы можете попытаться принудительно обработать очередь с помощью "sendmail -v -q". Это покажет природу ошибки.

Также проверьте электронную почту корневого пользователя на наличие сообщений о возврате.

DNS-имя SMTP-сервера не требуется, поскольку mail команда ожидает взаимодействия с локальным агентом почтового транспорта (MTA) на том же компьютере. Для Linux этим MTA часто является Sendmail. Конфигурация sendmail может включать DNS-имя почтового сервера вашего интернет-провайдера (MTA) в качестве интеллектуального хоста, если вам нужно направлять исходящую почту через почтовый сервер вашего интернет-провайдера.

Я бы проверил журналы почты, чтобы узнать, что случилось с вашей исходящей почтой. Он может стоять в очереди на доставку, и вы можете в должное время получить отчет о недоставке.