Имеется решение Вашего вопроса, но для начала определите, как часто этот список рассылки будет меняться. Если вы хотите добавлять пользователя периодически, то Вам легче выполнить запрос MySQL из командной строки и вывести его в файл .qmail. Вы можете применять это в работе cron каждую минуту- час -день- месяц. Для достижения ваших целей по поддержанию актуальности вашего списка рассылки выполните такую настройку:
mysql -sN -e ‘SELECT CONCAT(“&”,emailaddress) FROM table WHERE criteria’ > .qmailtmp
if [ $? -eq 0 ]; then
mv .qmailtmp .qmail
fi
Ее преимущество заключается в том, что У Вас появляется возможность создать ее во временном местоположении, а затем скопировать в файл .qmail после проверки ее успешности. Следовательно, ваша почта не перестает доставляться, когда ваш сервер MySQL выходит из строя. Очевидно, что это быстрый, простой и лучший способ реализовать эту задачу. Еще это также гарантирует, что многие запросы для отправки на этот адрес электронной почты не будут генерировать огромный трафик MySQL и замедлять вашу доставку или перегружать количество подключений вашего сервера MySQL.
Если вам нужно что-то, что меняется более регулярно, учтите, что получатель исходного электронного письма всегда будет тем из переадресованных электронных писем, а не тем, кого вы пересылаете. Вы можете обнаружить, что это снижает возможности доставки из-за спам-фильтров. Для решения этой проблемы, Вы можете найти менеджера списка рассылки, такого как ezmlm, как возможное решение, которое может хранить свой список подписчиков в базе данных MySQL.
Есть и еще вариант. Можно использовать почтовый фильтр, например, maildrop - агента доставки почты с возможностями фильтрации. Он использует почтовый сервер Courier, поэтому его даже и скачивать не надо, если он у Вас установлен.
с предварительной строкой. http://www.courier-mta.org/maildrop/ Тем не менее, исправления MySQL, похоже, были заброшены, и источники можно найти только в старых архивах исходных кодов дистрибутива Linux. Вы все еще можете использовать Maildrop для запуска внешней программы, такой как MySQL, чтобы получить свой список, но если вы собираетесь это сделать, это в основном то же самое, что и первый вариант, но в режиме реального времени. Вот пример использования внешней программы.
# set default Maildir
MAILDIR="$HOME/Maildir"
logfile "$HOME/mailfilter.log"
#user settings
DATABASE=<YOUR_DATABASE_USERNAME_HERE>
#mysql select
RESULT=`echo -ne "select toemail from addresses;" | mysql $DATABASE --skip-column-names`
### deliver to each RESULT here using your local methods