Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mailing
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lifo
Nicolas Ollinger
mailing
Commits
888fbe41
Commit
888fbe41
authored
Jun 07, 2020
by
Nicolas Ollinger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
migration de JSON à ConfigParser
parent
6b5b35cb
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
35 additions
and
19 deletions
+35
-19
README
README
+1
-1
mailing.conf
mailing.conf
+14
-0
mailing.json
mailing.json
+0
-6
mailing.log
mailing.log
+4
-4
mailing.py
mailing.py
+15
-7
mailing.txt
mailing.txt
+1
-1
No files found.
README
View file @
888fbe41
...
...
@@ -11,7 +11,7 @@ destinataires !
Le script principal est mailing.py (nécessite Python 3).
La configuration est répartie entre les fichiers suivants :
- mailing.
json
: connexion au serveur, identité de l'expéditeur
- mailing.
conf
: connexion au serveur, identité de l'expéditeur
- mailing.txt : sujet et corps du message qui accompagne la pièce-jointe
- mailing.csv : liste des destinataires et de leurs fichiers
...
...
mailing.conf
0 → 100644
View file @
888fbe41
# la section [server] contient le serveur SMTP, son port et le login utilisé
# le mot de passe est éventuellent fourni dans le champ passwd
[
server
]
hostname
:
smtps
.
univ
-
orleans
.
fr
port
:
465
login
:
p29719
# la section [mail] contient l'adresse de l'émetteur du mailing
# le champ bcc (true/false) indique si l'émetteur doit être en copie cachée des messages
[
mail
]
sender
:
Nicolas
Ollinger
<
Nicolas
.
Ollinger
@
univ
-
orleans
.
fr
>
bcc
:
true
mailing.json
deleted
100644 → 0
View file @
6b5b35cb
{
"server"
:
"smtps.univ-orleans.fr"
,
"port"
:
465
,
"login"
:
"p29719"
,
"sender"
:
"Nicolas Ollinger <Nicolas.Ollinger@univ-orleans.fr>"
}
mailing.log
View file @
888fbe41
2020-06-07 14:
09:36,684
==== Début du mailing ====
2020-06-07 14:
09:36,874
alice.demo@mailinator.com: OK
2020-06-07 14:
09:37,037
bob.demo@mailinator.com: OK
2020-06-07 14:
09:37,043
==== Fin du mailing ====
2020-06-07 14:
37:55,068
==== Début du mailing ====
2020-06-07 14:
37:55,276
alice.demo@mailinator.com: OK
2020-06-07 14:
37:55,451
bob.demo@mailinator.com: OK
2020-06-07 14:
37:55,458
==== Fin du mailing ====
mailing.py
View file @
888fbe41
...
...
@@ -4,23 +4,30 @@ from getpass import getpass
from
email.message
import
EmailMessage
from
email.policy
import
EmailPolicy
from
email.utils
import
formatdate
import
csv
,
logging
,
json
from
configparser
import
ConfigParser
import
csv
,
logging
with
open
(
'mailing.txt'
)
as
f
:
sujet
=
f
.
readline
()
.
strip
()
texte
=
f
.
read
(
-
1
)
with
open
(
'mailing.json'
)
as
f
:
conf
=
json
.
load
(
f
)
if
'passwd'
not
in
conf
:
conf
[
'passwd'
]
=
getpass
()
conf
=
ConfigParser
()
conf
.
read
(
'mailing.conf'
)
if
'port'
not
in
conf
[
'server'
]:
conf
[
'server'
][
'port'
]
=
'465'
if
'passwd'
not
in
conf
[
'server'
]:
conf
[
'server'
][
'passwd'
]
=
getpass
()
if
'bcc'
not
in
conf
[
'mail'
]:
conf
[
'mail'
][
'bcc'
]
=
'false'
def
envoie
(
serveur
,
port
,
login
,
mdp
,
sujet
,
corps
,
emet
,
dest
,
pdf_path
,
filename
):
def
envoie
(
serveur
,
port
,
login
,
mdp
,
sujet
,
corps
,
emet
,
dest
,
dobcc
,
pdf_path
,
filename
):
msg
=
EmailMessage
(
EmailPolicy
(
utf8
=
False
))
msg
[
'Subject'
]
=
sujet
msg
[
'From'
]
=
emet
msg
[
'To'
]
=
dest
msg
[
'Date'
]
=
formatdate
(
localtime
=
True
)
if
dobcc
:
msg
[
'Bcc'
]
=
emet
msg
.
set_content
(
corps
)
with
open
(
pdf_path
,
'rb'
)
as
f
:
dapdf
=
f
.
read
(
-
1
)
...
...
@@ -40,5 +47,6 @@ with open('mailing.csv',newline='') as f:
reader
=
csv
.
reader
(
f
)
for
row
in
reader
:
print
(
'{}...'
.
format
(
row
[
0
]))
envoie
(
conf
[
'server'
],
conf
[
'port'
],
conf
[
'login'
],
conf
[
'passwd'
],
sujet
,
texte
.
format
(
*
row
[
3
:]),
conf
[
'sender'
],
row
[
0
],
row
[
1
],
row
[
2
])
envoie
(
conf
[
'server'
][
'hostname'
],
int
(
conf
[
'server'
][
'port'
]),
conf
[
'server'
][
'login'
],
conf
[
'server'
][
'passwd'
],
sujet
,
texte
.
format
(
*
row
[
3
:]),
conf
[
'mail'
][
'sender'
],
row
[
0
],
conf
[
'mail'
][
'bcc'
]
==
'true'
,
row
[
1
],
row
[
2
])
logging
.
info
(
'==== Fin du mailing ===='
)
mailing.txt
View file @
888fbe41
...
...
@@ -4,7 +4,7 @@ Cher {},
Voici un exemple d'envoi automatisé de fichiers PDF.
La configuration du script (serveur d'envoi, login, mot de passe, adresse de l'émetteur) se fait
dans le fichier mailing.
json
. Le sujet et le corps du message sont à placer dans le fichier
dans le fichier mailing.
conf
. Le sujet et le corps du message sont à placer dans le fichier
mailing.txt. Enfin, le fichier mailing.csv contient, au format CSV, les informations suivantes :
- adresse du destinataire ;
- chemin d'accès au fichier PDF à attacher au message ;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment