eric6/Preferences/ConfigurationPages/EmailPage.py

Tue, 10 Sep 2019 19:30:07 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Sep 2019 19:30:07 +0200
changeset 7229
53054eb5b15a
parent 6942
2602857055c5
child 7263
c1af2e327675
permissions
-rw-r--r--

Removed obsolete "from __future__ import ..." statements.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
6645
ad476851d7e0 Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6560
diff changeset
3 # Copyright (c) 2006 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Email configuration page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
10
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
11 import smtplib
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
12 import socket
6828
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
13 import sys
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
14
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
15 from PyQt5.QtCore import pyqtSlot, Qt
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
16 from PyQt5.QtGui import QCursor
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
17 from PyQt5.QtWidgets import QApplication
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
18
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
19 from E5Gui import E5MessageBox
6828
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
20 from E5Gui.E5Application import e5App
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
21
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
22 from E5Network.E5GoogleMailHelpers import getInstallCommand, RequiredPackages
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
23
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
24 from .ConfigurationPageBase import ConfigurationPageBase
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
25 from .Ui_EmailPage import Ui_EmailPage
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 import Preferences
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
29
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 class EmailPage(ConfigurationPageBase, Ui_EmailPage):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 Class implementing the Email configuration page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 def __init__(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
38 super(EmailPage, self).__init__()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.setupUi(self)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.setObjectName("EmailPage")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41
6559
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
42 self.__helpDialog = None
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
43
6825
e659bb96cdfa Fixed a UI info inconsistency related to installation of Google mail related packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6823
diff changeset
44 pipPackages = [
e659bb96cdfa Fixed a UI info inconsistency related to installation of Google mail related packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6823
diff changeset
45 "google-api-python-client",
e659bb96cdfa Fixed a UI info inconsistency related to installation of Google mail related packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6823
diff changeset
46 "google-auth-oauthlib",
e659bb96cdfa Fixed a UI info inconsistency related to installation of Google mail related packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6823
diff changeset
47 ]
e659bb96cdfa Fixed a UI info inconsistency related to installation of Google mail related packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6823
diff changeset
48 self.__pipCommand = "pip install --upgrade {0}".format(
e659bb96cdfa Fixed a UI info inconsistency related to installation of Google mail related packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6823
diff changeset
49 " ".join(pipPackages))
e659bb96cdfa Fixed a UI info inconsistency related to installation of Google mail related packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6823
diff changeset
50
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 # set initial values
6828
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
52 self.__checkGoogleMail()
6559
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
53
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.mailServerEdit.setText(Preferences.getUser("MailServer"))
388
174d7a46f58d Fixed an issue with the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
55 self.portSpin.setValue(Preferences.getUser("MailServerPort"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.emailEdit.setText(Preferences.getUser("Email"))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.signatureEdit.setPlainText(Preferences.getUser("Signature"))
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
58 self.mailAuthenticationGroup.setChecked(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 Preferences.getUser("MailServerAuthentication"))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.mailUserEdit.setText(Preferences.getUser("MailServerUser"))
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 388
diff changeset
61 self.mailPasswordEdit.setText(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 Preferences.getUser("MailServerPassword"))
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
63 encryption = Preferences.getUser("MailServerEncryption")
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
64 if encryption == "TLS":
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
65 self.useTlsButton.setChecked(True)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
66 elif encryption == "SSL":
5464
1d4f700489f8 Fixed a bug in the Email configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5443
diff changeset
67 self.useSslButton.setChecked(True)
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
68 else:
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
69 self.noEncryptionButton.setChecked(True)
6828
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
70
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 def save(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 Public slot to save the Email configuration.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
75 Preferences.setUser(
5769
944c04cec861 Added the capability to send these emails via Google Mail using OAuth2 authentication.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5464
diff changeset
76 "UseGoogleMailOAuth2",
944c04cec861 Added the capability to send these emails via Google Mail using OAuth2 authentication.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5464
diff changeset
77 self.googleMailCheckBox.isChecked())
944c04cec861 Added the capability to send these emails via Google Mail using OAuth2 authentication.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5464
diff changeset
78 Preferences.setUser(
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
79 "MailServer",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.mailServerEdit.text())
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
81 Preferences.setUser(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
82 "MailServerPort",
388
174d7a46f58d Fixed an issue with the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
83 self.portSpin.value())
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
84 Preferences.setUser(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
85 "Email",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.emailEdit.text())
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
87 Preferences.setUser(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
88 "Signature",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 self.signatureEdit.toPlainText())
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
90 Preferences.setUser(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
91 "MailServerAuthentication",
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
92 self.mailAuthenticationGroup.isChecked())
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
93 Preferences.setUser(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
94 "MailServerUser",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 self.mailUserEdit.text())
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
96 Preferences.setUser(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
97 "MailServerPassword",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 self.mailPasswordEdit.text())
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
99 if self.useTlsButton.isChecked():
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
100 encryption = "TLS"
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
101 elif self.useSslButton.isChecked():
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
102 encryption = "SSL"
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
103 else:
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
104 encryption = "No"
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
105 Preferences.setUser("MailServerEncryption", encryption)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
106
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
107 def __updatePortSpin(self):
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
108 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
109 Private slot to set the value of the port spin box depending upon
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
110 the selected encryption method.
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
111 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
112 if self.useSslButton.isChecked():
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
113 self.portSpin.setValue(465)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
114 elif self.useTlsButton.isChecked():
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
115 self.portSpin.setValue(587)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
116 else:
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
117 self.portSpin.setValue(25)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
118
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
119 @pyqtSlot(bool)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
120 def on_noEncryptionButton_toggled(self, checked):
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
121 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
122 Private slot handling a change of no encryption button.
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
123
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
124 @param checked current state of the button
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
125 @type bool
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
126 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
127 self.__updatePortSpin()
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
128
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
129 @pyqtSlot(bool)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
130 def on_useSslButton_toggled(self, checked):
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
131 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
132 Private slot handling a change of SSL encryption button.
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
133
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
134 @param checked current state of the button
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
135 @type bool
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
136 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
137 self.__updatePortSpin()
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
138
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
139 @pyqtSlot(bool)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
140 def on_useTlsButton_toggled(self, checked):
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
141 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
142 Private slot handling a change of TLS encryption button.
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
143
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
144 @param checked current state of the button
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
145 @type bool
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
146 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
147 self.__updatePortSpin()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
149 def __updateTestButton(self):
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
150 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
151 Private slot to update the enabled state of the test button.
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
152 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
153 self.testButton.setEnabled(
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
154 self.mailAuthenticationGroup.isChecked() and
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3025
diff changeset
155 self.mailUserEdit.text() != "" and
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3025
diff changeset
156 self.mailPasswordEdit.text() != "" and
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
157 self.mailServerEdit.text() != ""
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
158 )
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
159
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
160 @pyqtSlot(str)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
161 def on_mailServerEdit_textChanged(self, txt):
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
162 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
163 Private slot to handle a change of the text of the mail server edit.
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
164
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
165 @param txt current text of the edit (string)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
166 @type str
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
167 """
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
168 self.__updateTestButton()
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
169
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
170 @pyqtSlot(bool)
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
171 def on_mailAuthenticationGroup_toggled(self, checked):
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
172 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
173 Private slot to handle a change of the state of the authentication
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
174 group.
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
175
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
176 @param checked state of the group (boolean)
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
177 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
178 self.__updateTestButton()
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
179
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
180 @pyqtSlot(str)
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
181 def on_mailUserEdit_textChanged(self, txt):
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
182 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
183 Private slot to handle a change of the text of the user edit.
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
184
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
185 @param txt current text of the edit (string)
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
186 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
187 self.__updateTestButton()
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
188
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
189 @pyqtSlot(str)
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
190 def on_mailPasswordEdit_textChanged(self, txt):
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
191 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
192 Private slot to handle a change of the text of the user edit.
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
193
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
194 @param txt current text of the edit (string)
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
195 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
196 self.__updateTestButton()
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
197
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
198 @pyqtSlot()
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
199 def on_testButton_clicked(self):
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
200 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
201 Private slot to test the mail server login data.
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
202 """
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
203 QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
204 QApplication.processEvents()
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
205 try:
5443
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
206 if self.useSslButton.isChecked():
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
207 server = smtplib.SMTP_SSL(self.mailServerEdit.text(),
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
208 self.portSpin.value(),
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
209 timeout=10)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
210 else:
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
211 server = smtplib.SMTP(self.mailServerEdit.text(),
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
212 self.portSpin.value(),
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
213 timeout=10)
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
214 if self.useTlsButton.isChecked():
3ef014765648 Added capability to use the SSL encryption method (next to StartTLS) in the built in Email dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
215 server.starttls()
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
216 try:
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
217 server.login(self.mailUserEdit.text(),
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
218 self.mailPasswordEdit.text())
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
219 QApplication.restoreOverrideCursor()
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
220 E5MessageBox.information(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
221 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
222 self.tr("Login Test"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
223 self.tr("""The login test succeeded."""))
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
224 except (smtplib.SMTPException, socket.error) as e:
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
225 QApplication.restoreOverrideCursor()
3539
0c2dc1446ebf Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
226 if isinstance(e, smtplib.SMTPResponseException):
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
227 errorStr = e.smtp_error.decode()
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
228 elif isinstance(e, socket.timeout):
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
229 errorStr = str(e)
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
230 elif isinstance(e, socket.error):
2065
aea3ddf97aca Fixed an issue in the Email config page testing the settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
231 try:
aea3ddf97aca Fixed an issue in the Email config page testing the settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
232 errorStr = e[1]
aea3ddf97aca Fixed an issue in the Email config page testing the settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
233 except TypeError:
aea3ddf97aca Fixed an issue in the Email config page testing the settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
234 errorStr = str(e)
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
235 else:
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
236 errorStr = str(e)
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
237 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
238 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
239 self.tr("Login Test"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
240 self.tr(
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2964
diff changeset
241 """<p>The login test failed.<br>Reason: {0}</p>""")
3038
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
242 .format(errorStr))
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
243 server.quit()
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
244 except (smtplib.SMTPException, socket.error) as e:
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
245 QApplication.restoreOverrideCursor()
3539
0c2dc1446ebf Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
246 if isinstance(e, smtplib.SMTPResponseException):
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
247 errorStr = e.smtp_error.decode()
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
248 elif isinstance(e, socket.timeout):
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
249 errorStr = str(e)
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
250 elif isinstance(e, socket.error):
2065
aea3ddf97aca Fixed an issue in the Email config page testing the settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
251 try:
aea3ddf97aca Fixed an issue in the Email config page testing the settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
252 errorStr = e[1]
aea3ddf97aca Fixed an issue in the Email config page testing the settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
253 except TypeError:
aea3ddf97aca Fixed an issue in the Email config page testing the settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
254 errorStr = str(e)
1032
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
255 else:
f7c2e348f6f3 Added function to test the login data to the Email config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
256 errorStr = str(e)
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
257 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
258 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
259 self.tr("Login Test"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
260 self.tr("""<p>The login test failed.<br>Reason: {0}</p>""")
3038
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
261 .format(errorStr))
6559
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
262
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
263 @pyqtSlot()
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
264 def on_googleHelpButton_clicked(self):
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
265 """
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
266 Private slot to show some help text "how to turn on the Gmail API".
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
267 """
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
268 if self.__helpDialog is None:
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
269 try:
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
270 from E5Network.E5GoogleMail import GoogleMailHelp
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
271 helpStr = GoogleMailHelp()
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
272 except ImportError:
6828
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
273 helpStr = self.tr(
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
274 "<p>The Google Mail Client API is not installed."
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
275 " Use <code>{0}</code> to install it.</p>"
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
276 ).format(getInstallCommand())
6559
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
277
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
278 from E5Gui.E5SimpleHelpDialog import E5SimpleHelpDialog
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
279 self.__helpDialog = E5SimpleHelpDialog(
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
280 title=self.tr("Gmail API Help"),
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
281 helpStr=helpStr, parent=self)
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
282
1265efa7364f Some fixes for configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
283 self.__helpDialog.show()
6828
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
284
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
285 @pyqtSlot()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
286 def on_googleInstallButton_clicked(self):
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
287 """
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
288 Private slot to install the required packages for use of Google Mail.
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
289 """
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
290 pip = e5App().getObject("Pip")
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
291 pip.installPackages(RequiredPackages, interpreter=sys.executable)
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
292 self.__checkGoogleMail()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
293
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
294 @pyqtSlot()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
295 def on_googleCheckAgainButton_clicked(self):
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
296 """
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
297 Private slot to check again the availability of Google Mail.
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
298 """
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
299 self.__checkGoogleMail()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
300
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
301 def __checkGoogleMail(self):
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
302 """
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
303 Private method to check the Google Mail availability and set the
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
304 widgets accordingly.
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
305 """
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
306 self.googleMailInfoLabel.hide()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
307 self.googleInstallButton.show()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
308 self.googleCheckAgainButton.show()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
309 self.googleHelpButton.setEnabled(True)
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
310 self.googleMailCheckBox.setEnabled(True)
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
311
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
312 try:
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
313 import E5Network.E5GoogleMail # __IGNORE_WARNING__
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
314 from E5Network.E5GoogleMailHelpers import \
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
315 isClientSecretFileAvailable
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
316
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
317 self.googleInstallButton.hide()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
318 if not isClientSecretFileAvailable():
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
319 # secrets file is not installed
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
320 self.googleMailCheckBox.setChecked(False)
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
321 self.googleMailCheckBox.setEnabled(False)
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
322 self.googleMailInfoLabel.setText(self.tr(
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
323 "<p>The client secrets file is not present."
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
324 " Has the Gmail API been enabled?</p>"))
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
325 self.googleMailInfoLabel.show()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
326 Preferences.setUser("UseGoogleMailOAuth2", False)
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
327 else:
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
328 self.googleMailCheckBox.setChecked(
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
329 Preferences.getUser("UseGoogleMailOAuth2"))
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
330 self.googleMailInfoLabel.hide()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
331 self.googleCheckAgainButton.hide()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
332 except ImportError:
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
333 # missing libraries, disable Google Mail
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
334 self.googleMailCheckBox.setChecked(False)
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
335 self.googleMailCheckBox.setEnabled(False)
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
336 self.googleMailInfoLabel.setText(self.tr(
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
337 "<p>The Google Mail Client API is not installed."
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
338 " Use <code>{0}</code> to install it.</p>"
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
339 ).format(getInstallCommand()))
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
340 self.googleMailInfoLabel.show()
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
341 self.googleHelpButton.setEnabled(False)
bb6667ea9ae7 Changed the Google Mail interface to not use obsoleted packages anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6825
diff changeset
342 Preferences.setUser("UseGoogleMailOAuth2", False)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
343
1061
3e21869872e3 Fixed PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1032
diff changeset
344
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345 def create(dlg):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 Module function to create the configuration page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 @param dlg reference to the configuration dialog
2964
84b65fb9e780 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2632
diff changeset
350 @return reference to the instantiated page (ConfigurationPageBase)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 page = EmailPage()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
353 return page

eric ide

mercurial