Труднее всего (ввиду отсутствия знаний английского и русской документации по модулю ScrolledText), было запихать в сообщение его (сообщения этого) текст :)) Плюс под комментом #кодировка, использовано решение (нашёл на этом форуме, кстати спасибо большое за ссылку!), которое у меня заработало.
Надо немного подправить в скрипте адреса почты и логин с паролем. А так же smtp сервер. Адрес сервера узнать просто - пускаете пинг на smtp.mail.ru(или какой там у вас) из командной строки, там и увидите адрес.
Просьба гуру, не попрекать некрасивостью кода, а подсказать как сделать лучше. ;) Мы тут новенькие всё таки… Упс… Одну строчечку забыл….
вот код:
# -*- coding: utf-8 -*-
import Tkinter, smtplib
from Tkinter import *
from ScrolledText import *
from email.MIMEText import MIMEText
import locale, codecs; locale.setlocale(locale.LC_ALL, '')
#кодировка тупо скопировал.. сам пытаюсь понять :)))
encoding = locale.getlocale()[1]
if not encoding:
encoding = "utf-8"
import sys;reload(sys);sys.setdefaultencoding(encoding)
sys.stdout = codecs.getwriter(encoding)(sys.stdout, errors = "replace")
sys.stderr = codecs.getwriter(encoding)(sys.stderr, errors = "replace")
#обработка событий
#функция завершения приложения
def end_program(event):
window.destroy()
#функция отправки сообщения (до пункта #инициализация, эт всё одна функция)
def send(event):
#сбор данных необходимых для отправки сообщения
me = 'ваш почтовый адрес'
server = "194.67.23.111" # "smtp.mail.ru" smtp сервер, вашего почтового провайдера 8-)))
port = 25
user_name = "логин"
user_passwd = "пароль"
s = smtplib.SMTP(server, port)
#формирование сообщения
sub = subject.get()
addr = address.get()
text = text_right.get(text_right.index(0.0), END)
msg = MIMEText(text, "", "cp1251")
msg['Subject'] = sub
msg['From'] = me
msg['To'] = addr
#отправка
s.starttls()
s.login(user_name, user_passwd)
s.sendmail(me, addr, msg.as_string())
s.quit()
#инициализация
window = Tk()
window.title("XMails!")
#построение интерфейса
#кнопки на левой панели
left_panel = PanedWindow(window)
left_panel.pack(side = LEFT, fill = BOTH)
#новое сообщение (пока без событий)
new_message = Button(left_panel)
new_message["text"] = "New Message"
new_message["width"] = 30
new_message.pack()
#кнопка отправки сообщения
send_button = Button(left_panel)
send_button["text"] = "Send"
send_button["width"] = 30
send_button.bind("<Button>", send)
send_button.pack()
#кнопка вызова настроек приложения (тож пока без событий)
perf_button = Button(left_panel)
perf_button["text"] = "Perference"
perf_button["width"] = 30
perf_button.pack()
#кнопка завершения приложения
exit_button = Button(left_panel)
exit_button["text"] = "Exit"
exit_button["width"] = 30
exit_button.bind("<Button>", end_program)
exit_button.pack()
#верхняя панель. поле адреса
top_panel = PanedWindow(window)
top_panel.pack(side = TOP, fill = BOTH)
t = Label(top_panel)
t["width"] = 20
t["text"] = "Mail from: "
t.pack(side = LEFT, fill = BOTH)
address = Entry(top_panel)
address.pack(side = RIGHT, expand = YES, fill = BOTH)
#Верхняя панель. поле темы
theme_panel = PanedWindow(window)
theme_panel.pack(fill = BOTH)
t2 = Label(theme_panel)
t2["text"] = "Subject: "
t2["width"] = 20
t2.pack(side = LEFT, fill = BOTH)
subject = Entry(theme_panel)
subject.pack(side = RIGHT, expand = YES, fill = BOTH)
#Панель с текстом сообщения
right_panel = PanedWindow(window)
right_panel.pack(side = RIGHT, expand = YES, fill = BOTH)
text_right = ScrolledText(right_panel)
text_right.pack(expand = YES, fill = BOTH)
#конец цикла
window.mainloop()