src/eric7/EricNetwork/EricGoogleMailHelpers.py

Thu, 20 Oct 2022 19:19:00 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 20 Oct 2022 19:19:00 +0200
branch
eric7
changeset 9427
905e7af29101
parent 9413
80c06d472826
child 9624
b47dfa7a137d
permissions
-rw-r--r--

Gmail Interface
- changed the Gmail interface to use the Google API packages for authentication (OAuth2) and sending of emails

6829
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
3 # Copyright (c) 2019 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
6829
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing some helpers for Google mail.
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
12 from eric7 import Globals
9427
905e7af29101 Gmail Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
13 from eric7.EricWidgets.EricApplication import ericApp
6829
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
9427
905e7af29101 Gmail Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
15 SCOPES = ["https://www.googleapis.com/auth/gmail.send"]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
16 CLIENT_SECRET_FILE = "eric_client_secret.json" # secok
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
17 TOKEN_FILE = "eric_python_email_send_token.json" # secok
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
18 APPLICATION_NAME = "Eric Python Send Email"
6829
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 RequiredPackages = (
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 "google-api-python-client",
9427
905e7af29101 Gmail Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
22 "google-auth-httplib2",
905e7af29101 Gmail Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
23 "google-auth-oauthlib",
6829
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 )
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 def isClientSecretFileAvailable():
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Module function to check, if the client secret file has been installed.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
30
6829
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @return flag indicating, that the credentials file is there
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @rtype bool
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
34 return os.path.exists(os.path.join(Globals.getConfigDir(), CLIENT_SECRET_FILE))
6829
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
9427
905e7af29101 Gmail Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
37 def installGoogleAPIPackages():
6829
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
9427
905e7af29101 Gmail Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
39 Module function to install the required packages to support Google mail.
6829
3a6133fe99a8 Google Mail: added the forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
9427
905e7af29101 Gmail Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
41 pip = ericApp().getObject("Pip")
905e7af29101 Gmail Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
42 pip.installPackages(RequiredPackages, interpreter=Globals.getPythonExecutable())

eric ide

mercurial