Коллеги, мы немного улучшили инструментарий по работе с почтовой системой в VMBitrix v1.15 от 15.12.2009г.
1) Исправлен скрипт настройки электронный почты msmtp_conf.sh
2) Добавлена возможность тестирования электронной почты через php функцию mail()
bash скрипт mail_test.sh запускает php скрипт test_mail.php от пользователя bitrix и
передает ему аргумент содержащий адрес получателя. php скрипт test_mail.php делает выборку адреса отправителя из файла настроек почты /home/bitrix/.msmtprc, формирует полученные данные и отправляет почту через функцию mail().
3) Расширено меню в bash скрипте menu.sh
Все скрипты должны находиться в /root
test_mail.php
mail_test.sh
msmtp_conf.sh
menu.sh
Пробуем, и радуемся жизни.
Хорошо бы это включить в следующие выпуски VMBitrix
1) Исправлен скрипт настройки электронный почты msmtp_conf.sh
2) Добавлена возможность тестирования электронной почты через php функцию mail()
bash скрипт mail_test.sh запускает php скрипт test_mail.php от пользователя bitrix и
передает ему аргумент содержащий адрес получателя. php скрипт test_mail.php делает выборку адреса отправителя из файла настроек почты /home/bitrix/.msmtprc, формирует полученные данные и отправляет почту через функцию mail().
3) Расширено меню в bash скрипте menu.sh
Все скрипты должны находиться в /root
test_mail.php
Код |
---|
<?php $file_array = file("/home/bitrix/.msmtprc"); $val = array_values(preg_grep ("/from/" , $file_array)); $from_email = str_replace("from ", "", $val[0]); $to_email = $argv[1]; $subject = "Test-Bitrix"; $message = "Test-Bitrix"; $headers = "From: " .$from_email. ""; mail($to_email, $subject, $message, $headers); print var_dump($argv); ?> |
mail_test.sh
Код |
---|
#!/bin/bash echo "=======================================" echo " Test mail settings " echo " Created by Vadim Balabin vbalabin@energosib.ru" echo "=======================================" echo read -p "Send E-Mail to: " sendto php="/usr/bin/php -f /root/test_mail.php $sendto" m=`su - bitrix -c "$php"` echo "$m" |
msmtp_conf.sh
Код |
---|
#!/bin/sh conf=/home/bitrix/.msmtprc echo "=======================================" echo " Mail sending subsystem setting" echo " Edit by Vadim Balabin vbalabin@energosib.ru" echo "=======================================" echo read -p "SMTP server name: " smtp read -p "SMTP port (press ENTER to leave default value, SMTP port = 25): " port if [ "$port" = "" ] ; then port=25 fi read -p "Default sender address: " sender read -p "Is SMTP authorization required? (y/n): " auth if [ "$auth" = "y" ]; then read -p "Username: " username read -p "Password: " password fi echo "=======================================" echo " Current SMTP authorization parameters" echo "=======================================" echo SMTP server: $smtp echo SMTP port: $port echo Default sender address: $sender echo "Is SMTP authorization required? (y/n):" $auth if [ "$auth" = "y" ]; then echo Username: $username echo Password: $password fi echo "=======================================" read -p "Save changes? (y/n): " save if [ "$save" = "y" ]; then file="account default\nlogfile /home/bitrix/.msmtp.log\nhost $smtp\nport $port\nfrom $sender" if [ "$auth" = "y" ]; then file="$file\nauth login\nuser $username\npassword $password" else file="$file\nauth off" fi fi echo $file > $conf |
menu.sh
Код |
---|
#!/bin/sh export TERM=linux LOGO="Bitrix virtual appliance" LOGOV=`set | grep BITRIX_VA_VER | sed 's/BITRIX_VA_VER=//'` Omenu="0. Virtual appliance information"; amenu="1. Mail sending system parameters"; #bmenu=2". Change Bitrix Portal working port(s): ${vaports}"; #cmenu=3". Change Zend CE management site status: ENABLE <-> DISABLE"; dmenu="4. Change root password"; emenu="5. Change bitrix password"; fmenu="6. Virtual server reboot"; gmenu="7. Virtual server shutdown"; ##hmenu=". Get a new IP address via DHCP"; ##imenu=". Assign a new IP address (manual)"; jmenu="8. Quit to shell"; tmenu="9. Testing Mail sending system parameters"; badchoice () { MSG="Misleading choice ... Please, try again" ; } Opick () { /root/info.sh; echo "Press ENTER to continue..."; read ""; } apick () { passwd ; } bpick () { /root/dhcp_ip.sh ; } cpick () { /root/ifcfg_ip.sh ; } dpick () { /root/msmtp_conf.sh ; } epick () { [ -f /var/www/.htsecure ] && { rm -rf /var/www/.htsecure ; /etc/init.d/nginx restart >/dev/null 2>&1 ; } || { touch /var/www/.htsecure ; /etc/init.d/nginx restart > /dev/null 2>&1 ; } ; } #fpick () { [ -z "`ufw status|grep 10082:tcp|grep ALLOW`" ] && ufw allow 10082/tcp > /dev/null 2>&1 || ufw deny 10082/tcp > /dev/null 2>&1 ; } fpick () { test -z "`/usr/local/zend/bin/lighttpdctl.sh status | grep 'lighttpd is running'`" && /usr/local/zend/bin/lighttpdctl.sh start > /dev/null 2>&1 || /usr/local/zend/bin/lighttpdctl.sh stop > /dev/null 2>&1 ; } gpick () { passwd bitrix; } hpick () { reboot ; } ipick () { init 0 ; } jpick () { exit ; } tpick () { /root/mail_test.sh ; } themenu () { vaports=`[ -f /var/www/.htsecure ] && echo "HTTP/HTTPS" || echo "HTTPS only"` #zend0=`ufw status|grep 10082|grep ALLOW` zend0=`/usr/local/zend/bin/lighttpdctl.sh status | grep 'lighttpd is running'` zend=`[ -z "$zend0" ] && echo "Enable" || echo "Disable"` ip_=`ifconfig | grep Bcast|awk '{print $2}'|sed 's/addr://'` clear #echo `date` #echo #echo "IP address:" ip_ echo "\t\t" $LOGO " version "$LOGOV echo echo "To manage your appliance please browse to https://"$ip_":5480" #[ -z "`ufw status|grep 10082:tcp|grep ALLOW`" ] && echo "Zend control panel is disabled" || echo "To manage ZendServerCE please browse to https://"$ip_":10082/ZendServer" test -z "$zend0" && echo "Zend control panel is disabled" || echo "To manage Zend Server CE please browse to https://"$ip_":10082/ZendServer" [ -f /var/www/.htsecure ] && echo "To manage Bitrix please browse to https://"$ip_ || echo "To manage Bitrix please browse to https://"$ip_" or http://"$ip_ echo #echo "\t" $LOGO " version "$LOGOV #echo echo "Available actions:" echo "\t\t" $Omenu echo "\t\t" $amenu echo "\t\t" "2. Set Bitrix working protocol(s): ${vaports}" echo "\t\t" "3. $zend ZendServerCE control panel" echo "\t\t" $dmenu echo "\t\t" $emenu echo "\t\t" $fmenu echo "\t\t" $gmenu echo "\t\t" $jmenu echo "\t\t" $tmenu echo echo $MSG echo echo Type a number and press ENTER ; } MSG= while true do themenu read answer MSG= case $answer in 0|O) Opick;; 1|A) dpick;; 2|B) epick;; 3|C) fpick;; 4|D) apick;; 5|E) gpick;; 6|F) hpick;; 7|G) ipick;; 8|H) jpick;; 9|T) tpick;; *) badchoice;; esac done |
Пробуем, и радуемся жизни.

Хорошо бы это включить в следующие выпуски VMBitrix
