По просьбе hdclnr. Опять же упомяну, что я с пайтаном только знакомлюсь!! Вот скриптик, который тупо лезет в БД биллинга UTM5, хватает от туда всех должников, у кого задолженность привышает позволенный кредит и кто не числится в удаленных. Затем составляет простейшее подобие таблички и всу эту мутатень пересылает на указанные адреса.
Смысл создания скрипта опишу в 2х пунктах: 1. Тренируюсь писать хоть что-то на питоне 2. чесслово надо.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import _mysql, sys, smtplib
from email.MIMEText import MIMEText
smtp_server = '10.0.0.66'
smtp_port = '25'
mail_subj = 'billing'
mail_from = 'user1@domain'
mail_to = ('user2@domain',
'user3@domain',
'user4@domain')
mail_user = 'user@domain'
mail_passwd = 'PASSWORD'
host,user,passwd,dbname = '10.0.0.3','root','DBPASSWORD','UTM5'
db=_mysql.connect(host,user,passwd,dbname)
db.query("""SELECT u.id,u.login,a.credit,FORMAT(a.balance,2) FROM users as u,accounts as a WHERE a.id=u.basic_account AND a.balance<0
AND u.is_deleted=0 AND a.balance+a.credit<0;""")
r=db.store_result()
res = r.fetch_row(0)
text = 'ID\t|\tLogin\t\t|\tCredit\t|\tDolg\n'
line = '='*70
text = text + line + '\n'
# А вот здесь начинается мой дибилизм. Вместо того, чтобы все-таки найти и понять,
# как там сразу правильно отсылать на несколько адресов (через запятую не работает),
# я пихай все в бессмысленный цикл, из-за которого сами понимаете, что творится :)
for x in res:
if len(x[1]) > 7:
tab = '\t'
else:
tab = '\t\t'
text = text + x[0] + '\t|\t' + x[1] + tab + '|\t' + x[2] + '\t|\t' + x[3] + '\n'
#print text - это было для отладки
msg = MIMEText(text, "", "cp1251")
msg['Subject'] = mail_subj
msg['From'] = mail_from
for se in mail_to:
msg['To'] = se # masil_to
s = smtplib.SMTP(smtp_server, smtp_port)
s.starttls()
s.login(mail_user,mail_passwd)
s.sendmail(mail_from, se, msg.as_string())
s.quit()