10 import os |
10 import os |
11 import mimetypes |
11 import mimetypes |
12 import smtplib |
12 import smtplib |
13 import socket |
13 import socket |
14 |
14 |
15 from PyQt4.QtCore import * |
15 from PyQt4.QtCore import Qt, pyqtSlot |
16 from PyQt4.QtGui import * |
16 from PyQt4.QtGui import QCursor, QHeaderView, QLineEdit, QDialog, QInputDialog, \ |
|
17 QApplication, QDialogButtonBox, QTreeWidgetItem |
17 |
18 |
18 from E5Gui import E5MessageBox, E5FileDialog |
19 from E5Gui import E5MessageBox, E5FileDialog |
19 |
20 |
20 from .Ui_EmailDialog import Ui_EmailDialog |
21 from .Ui_EmailDialog import Ui_EmailDialog |
21 |
22 |
22 from .Info import BugAddress, FeatureAddress |
23 from .Info import BugAddress, FeatureAddress |
23 import Preferences |
24 import Preferences |
24 import Utilities |
25 import Utilities |
|
26 from base64 import b64encode as _bencode |
|
27 |
|
28 from email import encoders |
|
29 from email.mime.text import MIMEText |
|
30 from email.mime.image import MIMEImage |
|
31 from email.mime.audio import MIMEAudio |
|
32 from email.mime.application import MIMEApplication |
|
33 from email.mime.multipart import MIMEMultipart |
|
34 from email.header import Header |
|
35 |
25 |
36 |
26 ############################################################ |
37 ############################################################ |
27 ## This code is to work around a bug in the Python email ## |
38 ## This code is to work around a bug in the Python email ## |
28 ## package for Image and Audio mime messages. ## |
39 ## package for Image and Audio mime messages. ## |
29 ############################################################ |
40 ############################################################ |
30 from base64 import b64encode as _bencode |
|
31 |
41 |
32 |
42 |
33 def _encode_base64(msg): |
43 def _encode_base64(msg): |
34 """ |
44 """ |
35 Function to encode the message's payload in Base64. |
45 Function to encode the message's payload in Base64. |
41 orig = msg.get_payload() |
51 orig = msg.get_payload() |
42 encdata = str(_bencode(orig), "ASCII") |
52 encdata = str(_bencode(orig), "ASCII") |
43 msg.set_payload(encdata) |
53 msg.set_payload(encdata) |
44 msg['Content-Transfer-Encoding'] = 'base64' |
54 msg['Content-Transfer-Encoding'] = 'base64' |
45 |
55 |
46 from email import encoders |
|
47 encoders.encode_base64 = _encode_base64 # WORK AROUND: implement our corrected encoder |
56 encoders.encode_base64 = _encode_base64 # WORK AROUND: implement our corrected encoder |
48 from email.mime.text import MIMEText |
|
49 from email.mime.image import MIMEImage |
|
50 from email.mime.audio import MIMEAudio |
|
51 from email.mime.application import MIMEApplication |
|
52 from email.mime.multipart import MIMEMultipart |
|
53 from email.header import Header |
|
54 |
57 |
55 |
58 |
56 class EmailDialog(QDialog, Ui_EmailDialog): |
59 class EmailDialog(QDialog, Ui_EmailDialog): |
57 """ |
60 """ |
58 Class implementing a dialog to send bug reports. |
61 Class implementing a dialog to send bug reports. |