Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489

Подобие почтового клиента - проблема с русским языком

08.06.2016, 10:13. Показов 1019. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал программу,наподобие почтового клиента. Все работает, сообщения в отдельные файлы отправляются, но с русским языком беда - совсем ничего не приходит.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2016, 10:13
Ответы с готовыми решениями:

Будет ли работать латинская клавиатура с русским языком на планшете с русским языком
Уважаемые товарищи, добрый день. Подскажите, пожалуйста, если на ebay купить англоязычную клавиатуру для планшета samsung ativ smart...

проблема с русским языком
народ подскажите кто знает! имею базу данных с значениями полей как на русском так и на англ создавал так set...

Проблема с русским языком
Вот такое у меня во всех приложениях с русским языком. Использую Windows LTSC 1809. Помогите решить,пожалуйста.

7
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
08.06.2016, 10:19
Не нашел:
a) кода
б) версии питона
в) ос
г) вопроса
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
08.06.2016, 13:06  [ТС]
Вот клиент
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
import smtplib
from email.mime.text import MIMEText
from Tkinter import *
import sqlite3
import tkMessageBox
import hashlib
import locale
 
 
con = sqlite3.connect('DataBaseMailServer')
cur = con.cursor()
cur.execute('create table if not exists TableForMailServer(Login TEXT, PASSWORD TEXT)')
con.commit()
 
 
def Entry1(event):
    def CheckLoginPassword():
        flag = 1
        con = sqlite3.connect('DataBaseMailServer')
        cur = con.cursor()
        cur.execute('SELECT * FROM TableForMailServer')
        data = cur.fetchall()
        con.commit()
        h1 = hashlib.md5(Password_entry.get())
        CryptPassword = h1.hexdigest()
        for i in range(len(data)) :
            if data[i][0] == LOGIN_entry.get() :
                if data[i][1] == CryptPassword :
                    SendMail(LOGIN_entry.get())
                    flag = 0
        if flag:
            tkMessageBox.showinfo(title="Error", message="Wrong login-password")
    root.destroy()
    rootEntry = Tk()
    rootEntry.title("Entry")
    app = Frame(rootEntry)
    app.pack()
    LOGIN_label = Label(app, text="Login")
    LOGIN_label.grid(row=0, column=0)
    LOGIN_entry = Entry(app, width=20)
    LOGIN_entry.grid(row=0,column=1)
    Password_label = Label(app, text="Password")
    Password_label.grid(row=1, column=0)
    Password_entry = Entry(app, width=20,show = '*')
    Password_entry.grid(row=1,column=1)
    entry_button = Button(app, text="Entry",width=10, command=CheckLoginPassword)
    entry_button.grid(row=3,column=0)
    exit_button = Button(app, text="Exit",width=10, command=rootEntry.destroy )
    exit_button.grid(row=3,column=1)
    x=(rootEntry.winfo_screenwidth()-rootEntry.winfo_reqwidth())/2
    y=(rootEntry.winfo_screenheight()-rootEntry.winfo_reqheight())/2
    rootEntry.wm_geometry("+%d+%d"%(x,y))
    rootEntry.mainloop()
    rootEntry.destroy()
 
 
def Registration(event):
    def database():
        con = sqlite3.connect('DataBaseMailServer')
        cur = con.cursor()
        h1 = hashlib.md5(Password_entry.get())
        CryptPassword = h1.hexdigest()
        cur.execute('INSERT INTO TableForMailServer VALUES(?,?)',(LOGIN_entry.get(),CryptPassword))
##        cur.execute('INSERT INTO TableForMailServer VALUES(?,?)',(LOGIN_entry.get(),Password_entry.get()))
        con.commit()
##    def quit(event):
 ##       root.destroy()
    root.destroy()
    rootEntry = Tk()
    rootEntry.title("Registration")
    app = Frame(rootEntry)
    app.pack()
    LOGIN_label = Label(app, text="Login")
    LOGIN_label.grid(row=0, column=0)
    LOGIN_entry = Entry(app, width=20)
    LOGIN_entry.grid(row=0,column=1)
    Password_label = Label(app, text="Password")
    Password_label.grid(row=1, column=0)
    Password_entry = Entry(app, width=20)
    Password_entry.grid(row=1,column=1)
    reg_button = Button(app, text="Save",width=10,command=database)
    reg_button.grid(row=3,column=0)
    exit_button = Button(app, text="Exit",width=10, command=rootEntry.destroy )
    exit_button.grid(row=3,column=1)
   ## rootEntry.bind('Escape',quit)
    x=(rootEntry.winfo_screenwidth()-rootEntry.winfo_reqwidth())/2
    y=(rootEntry.winfo_screenheight()-rootEntry.winfo_reqheight())/2
    rootEntry.wm_geometry("+%d+%d"%(x,y))
    
    rootEntry.mainloop()
 
 
def SendMail(FromField):
    def CheckLogin():
        def Send():
            ip_serv = IP_entry.get()
            FROM = FromField
            TO = TO_entry.get()
            Message = MSG_entry.get()   
            msg = MIMEText(Message)
            msg['To'] = TO
            msg['From'] = FROM
            server = smtplib.SMTP(ip_serv, 1025)
            server.set_debuglevel(True) # show communication with the server
            try:
                server.sendmail( FROM, TO, msg.as_string())
            finally:
                server.quit()
        flag = 1
        con = sqlite3.connect('DataBaseMailServer')
        cur = con.cursor()
        cur.execute('SELECT * FROM TableForMailServer')
        data = cur.fetchall()
        con.commit()
        for i in range(len(data)) :
            if data[i][0] == TO_entry.get() :
                Send()
                flag = 0
        if flag:
            tkMessageBox.showinfo(title="Error", message="Wrong reciver")
    root_mail = Tk()
    root_mail.title("Send Mail")
    app_mail = Frame(root_mail)
    app_mail.pack()
    TO_label = Label(app_mail, text="To")
    TO_label.grid(row=1, column=0)
    TO_entry = Entry(app_mail, width=20)
    TO_entry.grid(row=1,column=1)
    IP_label = Label(app_mail, text="IP")
    IP_label.grid(row=2, column=0)
    IP_entry = Entry(app_mail, width=20)
    IP_entry.grid(row=2,column=1)
    MSG_label = Label(app_mail, text="Message")
    MSG_label.grid(row=3, column=0)
    MSG_entry = Entry(app_mail, width=50)
    MSG_entry.grid(row=3,column=1)
    exit_button = Button(app_mail, text="Exit",width=10, command=root_mail.destroy )
    exit_button.grid(row=4,column=1)
    send_button = Button(app_mail, text="Send",width=10,command=CheckLogin )
    send_button.grid(row=4,column=0)
    x=(root_mail.winfo_screenwidth()-root_mail.winfo_reqwidth())/2
    y=(root_mail.winfo_screenheight()-root_mail.winfo_reqheight())/2
    root_mail.wm_geometry("+%d+%d"%(x,y))
    root_mail.mainl
    
root = Tk()
root.title("Client")
##btn1 = Button( root, text="Enter", width=30, height=5, bg="white", fg="black", command=Entry1)
##btn2 = Button( root, text="Registration", width=30, height=5, bg="white", fg="black", command=Registration)
##btn1.pack( side = TOP)
##btn2.pack( side = TOP)
btn1 = Button( root, text="Enter", width=30, height=5, bg="white", fg="black")
btn2 = Button( root, text="Registration", width=30, height=5, bg="white", fg="black")
btn1.bind("<Button-1>",Entry1)
btn2.bind("<Button-1>",Registration)
btn1.pack( side = TOP)
btn2.pack( side = TOP)
x=(root.winfo_screenwidth()-root.winfo_reqwidth())/2
y=(root.winfo_screenheight()-root.winfo_reqheight())/2
root.wm_geometry("+%d+%d"%(x,y))
root.mainloop()
Вот сервер
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from Tkinter import *
import smtpd
import asyncore
import os.path
import socket
 
 
def StartMenu():
    def ReturnIP():
        file = open("ip.txt","w+")
        file.write(IP_enter.get())
        file.close()
        root.destroy()
        return
    root = Tk()
    root.title("Enter IP")
    IP_label = Label(root,text ="IP")
    IP_label.grid()
    IP_enter = Entry (root, width=50)
    IP_enter.grid()
    Start = Button(root, text="Input",width=10, command=ReturnIP )
    Start.grid()
    root.mainloop()
 
 
def CreateFolder(mailfrom):
    if os.path.exists("Message\" + mailfrom):
        return
    else:
        os.makedirs("Message\" + mailfrom)
        return
 
def ParseAndGetMessage(mailfrom,data,rcpttos):
    with open("Message\" + mailfrom+"\"+ rcpttos[0] + ".txt","a",encoding='utf8') as file:
        file.write("\n"+ data[99 + len(rcpttos[0]) + 1 + 6 + len(mailfrom) + 2:])
        file.close()
    return
 
class MySMTPServer(smtpd.SMTPServer):
    def process_message(self,peer,mailfrom,rcpttos,data):
        CreateFolder(mailfrom)
        ParseAndGetMessage(mailfrom,data,rcpttos)
         
        
    ##peer - IP sender
    ##mailfrom - from
    ##rcpttos - to
    ##data - message
 
def GetIP():
    file = open('ip.txt','r')
    ip_serv = file.read()
    return ip_serv
 
StartMenu()
server = MySMTPServer((GetIP(),1025), None)
asyncore.loop()
0
Заблокирован
08.06.2016, 13:20
перекодируте строку в байты отправьте и будет вам счастье
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
15.06.2016, 00:02  [ТС]
askurandrio, вы можете подсказать как это сделать? И сделать надо это в сервере или клиенте?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
15.06.2016, 00:23
Python
1
'привет'.encode('utf8')
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
15.06.2016, 09:16  [ТС]
Что то не получается, я знаю что ошибка в клиенте, но не знаю где именно
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
18.06.2016, 11:55  [ТС]
Я понял как это исправить в клиенте модуль mimetext, я указал дополнительные параметры, но приходит в кодировке base64
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.06.2016, 11:55
Помогаю со студенческими работами здесь

Проблема с русским языком
В VB6 если в коде переключить язык ввода на русский, то печатает абракадабру. Может кто-нибудь знает патч какой-нибудь. Пожалуйста!!!

HTMLEncode - Проблема с русским языком
Заранее извиняюсь, если кому то вопрос покажется глупым. В процессе изучения разбирал скрипт гостевой книги скачанный с Relib, Там...

OJB + Firebird проблема с русским языком
Ломается кодировка при занесении русских букв. при создании БД указана кодировка win1251 так что там все ок при обычном коннекте в БД...

ODAC 3.90 Net - проблема с русским языком!
Испольую OADC 3.90 Net (Oracle Data Access Components), компилятор - Builder C++ 5.0, сервер - Oracle 7.3.4, ОС - Windows 2000 Prof. Так...

Проблема с русским языком в ListBox и ComboBox
В Windows XP в VB6 приложении русский язык нормально отображается в Label и TextBox, а в ListBox и ComboBox - абракадабра. Скрипт фонта -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru