10 |
10 |
11 import smtplib |
11 import smtplib |
12 import socket |
12 import socket |
13 import sys |
13 import sys |
14 |
14 |
15 from PyQt5.QtCore import pyqtSlot, Qt |
15 from PyQt5.QtCore import pyqtSlot |
16 from PyQt5.QtGui import QCursor |
|
17 from PyQt5.QtWidgets import QApplication |
|
18 |
16 |
19 from E5Gui import E5MessageBox |
17 from E5Gui import E5MessageBox |
20 from E5Gui.E5Application import e5App |
18 from E5Gui.E5Application import e5App |
|
19 from E5Gui.E5OverrideCursor import E5OverrideCursor |
21 |
20 |
22 from E5Network.E5GoogleMailHelpers import getInstallCommand, RequiredPackages |
21 from E5Network.E5GoogleMailHelpers import getInstallCommand, RequiredPackages |
23 |
22 |
24 from .ConfigurationPageBase import ConfigurationPageBase |
23 from .ConfigurationPageBase import ConfigurationPageBase |
25 from .Ui_EmailPage import Ui_EmailPage |
24 from .Ui_EmailPage import Ui_EmailPage |
198 @pyqtSlot() |
197 @pyqtSlot() |
199 def on_testButton_clicked(self): |
198 def on_testButton_clicked(self): |
200 """ |
199 """ |
201 Private slot to test the mail server login data. |
200 Private slot to test the mail server login data. |
202 """ |
201 """ |
203 QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
|
204 QApplication.processEvents() |
|
205 try: |
202 try: |
206 if self.useSslButton.isChecked(): |
203 with E5OverrideCursor(): |
207 server = smtplib.SMTP_SSL(self.mailServerEdit.text(), |
204 if self.useSslButton.isChecked(): |
|
205 server = smtplib.SMTP_SSL(self.mailServerEdit.text(), |
|
206 self.portSpin.value(), |
|
207 timeout=10) |
|
208 else: |
|
209 server = smtplib.SMTP(self.mailServerEdit.text(), |
208 self.portSpin.value(), |
210 self.portSpin.value(), |
209 timeout=10) |
211 timeout=10) |
210 else: |
212 if self.useTlsButton.isChecked(): |
211 server = smtplib.SMTP(self.mailServerEdit.text(), |
213 server.starttls() |
212 self.portSpin.value(), |
|
213 timeout=10) |
|
214 if self.useTlsButton.isChecked(): |
|
215 server.starttls() |
|
216 try: |
|
217 server.login(self.mailUserEdit.text(), |
214 server.login(self.mailUserEdit.text(), |
218 self.mailPasswordEdit.text()) |
215 self.mailPasswordEdit.text()) |
219 QApplication.restoreOverrideCursor() |
216 server.quit() |
220 E5MessageBox.information( |
217 E5MessageBox.information( |
221 self, |
218 self, |
222 self.tr("Login Test"), |
219 self.tr("Login Test"), |
223 self.tr("""The login test succeeded.""")) |
220 self.tr("""The login test succeeded.""")) |
224 except (smtplib.SMTPException, socket.error) as e: |
|
225 QApplication.restoreOverrideCursor() |
|
226 if isinstance(e, smtplib.SMTPResponseException): |
|
227 errorStr = e.smtp_error.decode() |
|
228 elif isinstance(e, socket.timeout): |
|
229 errorStr = str(e) |
|
230 elif isinstance(e, socket.error): |
|
231 try: |
|
232 errorStr = e[1] |
|
233 except TypeError: |
|
234 errorStr = str(e) |
|
235 else: |
|
236 errorStr = str(e) |
|
237 E5MessageBox.critical( |
|
238 self, |
|
239 self.tr("Login Test"), |
|
240 self.tr( |
|
241 """<p>The login test failed.<br>Reason: {0}</p>""") |
|
242 .format(errorStr)) |
|
243 server.quit() |
|
244 except (smtplib.SMTPException, socket.error) as e: |
221 except (smtplib.SMTPException, socket.error) as e: |
245 QApplication.restoreOverrideCursor() |
|
246 if isinstance(e, smtplib.SMTPResponseException): |
222 if isinstance(e, smtplib.SMTPResponseException): |
247 errorStr = e.smtp_error.decode() |
223 errorStr = e.smtp_error.decode() |
248 elif isinstance(e, socket.timeout): |
224 elif isinstance(e, socket.timeout): |
249 errorStr = str(e) |
225 errorStr = str(e) |
250 elif isinstance(e, socket.error): |
226 elif isinstance(e, socket.error): |