Показаны сообщения с ярлыком email. Показать все сообщения
Показаны сообщения с ярлыком email. Показать все сообщения

4 дек. 2012 г.

Проверка балланса GSM-модема, подключенного к Asterisk и формирование лога звонков за прошедшие сутки с отправкой по e-mail на Python 3

Недавно был описанный в заголовке таск.

Т. к. я очень люблю питончик, то скрипты пишу на нём. В скрипте выполняется команда астериска (USSD-запрос), далее вытягивается содержимое ответа на ussd, вытягивается лог звонков за сутки, формируется письмо в виде html и отсылается на заданные адреса по электронной почте.

1. Импорты необходимых библиотек:


#!/usr/bin/env python3
import os, smtplib, time, subprocess, shlex, sys, csv
from email.utils import formatdate
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

2. Формируем шапку письма - кому, куда, что и зачем :)


# me == my email address
# you == recipient's email address
# cc == copy's address
me = "asterisk@example.com"
сс = "recipient1@example.com"
you = "recipient2@example.com"
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart('alternative')
msg['Subject'] = "GSM modem balance ("+time.strftime("%m/%d/%Y",time.localtime())+")"
msg['From'] = me
msg['To'] = you+", "+cc
msg['Date'] = formatdate(localtime=True)

Отправка USSD-запроса сосстояния балланса и обработка результата. Для посылки запроса использую вызов bash команды через subprocess.call - может быть и слишком криво, но быстро и работает.

Затем идет пауза в 10 сек - необходима, чтобы пришел ответ от оператора.

9 окт. 2012 г.

Ошибка при доставке почты в dovecot: ... status=deferred (temporary failure)

Если на почтовый сервер postfix + dovecot не приходит почта и мы видим ошибку в mail.log примерно такого вида:

postfix/pipe[26239]: 7390F1203B3: to=<user1@domain.com>, relay=dovecot, delay=483, delays=483/0.01/0/0.02, dsn=4.3.0, status=deferred (temporary failure)

То ищем дополнительный лог довекота:

locate dovecot-deliver.log

Смотрим:

tail /home/vmail/dovecot-deliver.log

А там видим такое:

Fatal: Plugin 'sieve' not found from directory /usr/lib/dovecot/modules

Это значит, что не хватает плугина Sieve.Ставим (Debian way) и перезапускаем dovecot:

aptitude install dovecot-sieve
service dovecot restart

30 авг. 2012 г.

Установка RoundCube Webmail

Сразу определюсь: ОС - Debian, MTA - Postfix, использую только защищенные подключения, веб-сервер Apache + modphp5.
В Debian, как всегда, есть два пути - ставить из сорцов или из пакетов. Я выбрал 2й путь.

apt-get install roundcube roundcube-mysql libapache2-mod-evasive
nano /etc/apache2/conf.d/roundcube

Добавляем строчки:

Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/

Alias /roundcube /var/lib/roundcube

chown -R www-data /var/lib/roundcube/
nano /var/lib/roundcube/config/main.inc.php

Здесь прописываем конфиги для своего почтового сервера. Пример:

$rcmail_config['force_https'] = TRUE;
$rcmail_config['default_host'] = 'ssl://localhost:993';
$rcmail_config['imap_auth_type'] = 'check';
$rcmail_config['smtp_server'] = '127.0.0.1';
$rcmail_config['smtp_port'] = 465;

$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';

$rcmail_config['smtp_auth_type'] = 'LOGIN';

6 авг. 2012 г.

Настройка почты в Redmine

Здесь я опишу настройку Redmine для отправки почты через свой почтовый сервер.

Redmine настроен на сервере Linux Debian 6 через mod_passenger веб-сервера apache2

В зависимости от вашей инсталляции редактируем файл /etc/redmine/default/email.yml (Debian, из пакетов) или /usr/share/redmine/config/email.yml (смотрите, не перепутайте, типа как я - и парился, почему ж оно не вхавывает новые настройки... :) ) и прописываем настройки, заменив адреса и т. д. на свои:


production:
  delivery_method: :smtp
  smtp_settings:
    address: 192.168.1.2
    port: 25
    domain: mydomain.com
    authentication: :plain
    user_name: "redmine@mydomain.com"
    password: "Password"


development:

  delivery_method: :smtp
  smtp_settings:
    address: 192.168.1.2
    port: 25
    domain: mydomain.com
    authentication: :plain
    user_name: "redmine@mydomain.com"
    password: "Password"