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

Отправка электронного письма через cron

Я хотел бы получить совет о том, как лучше всего отправить электронное письмо после выполнения SQL-запроса. Каждый день я хотел бы запускать сценарий PHP / SQL, чтобы определять пользователей, которым следует отправлять электронные письма. После этого я хотел бы отправить этим пользователям электронное письмо и прикрепить файл для каждого пользователя (который является результатом другого процесса PHP / SQL).

До сих пор мой подход заключается в использовании cron для вызова php-скрипта и записи вывода csv в уникальный временный каталог для каждого пользователя. Однако я не знаю, как лучше всего отправить эти данные пользователям по электронной почте.

Я использую сервер CentOS и PostGreSQL для своей базы данных.

Лучший способ - отправить почту через свой php-код (http://php.net/manual/en/function.mail.php). У Cron может быть только один получатель почты на запись crontab (Переопределить MAILTO для одной записи crontab).

Как вы сказали, в своем скрипте PHP / SQL вы можете использовать почтовую функцию php для отправки электронной почты. Вы также можете прикрепить созданный вами файл.

Вот как вы можете отправить электронное письмо на PHP:
http://www.finalwebsites.com/forums/topic/php-e-mail-attachment-script

Если вы отправляете много писем и вам нужно их оптимизировать, прочтите это:
http://www.activecampaign.com/help/how-to-optimize-your-server-mail-server-and-software/

попробуйте mailx:

 echo "this is a test mail" | mailx -s "Test mail" you@yourdomain.com

Если это не работает, возможно, у вас нет локального почтового сервера. В этом случае установите пакет ssmtp и настройте /etc/ssmtp/ssmtp.conf. Вам необходимо предоставить реальный почтовый сервер и локальное доменное имя:

#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.

root=postmaster
# The place where the mail goes.
mailhub=mail.yourdomain.com

# Where will the mail seem to come from?
rewriteDomain=yourdomain.com

# The full hostname
hostname=server.yourdomain.com