ajoute un nombre arbitraire de PJ
This commit is contained in:
parent
166f4298f9
commit
03d2a29311
51
mailing.py
51
mailing.py
@ -57,12 +57,7 @@ def parse_args():
|
||||
"-v", "--verbose", action="store_true",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-a",
|
||||
"--attachement",
|
||||
metavar="ATTACHED.FILE",
|
||||
type=str,
|
||||
nargs="?",
|
||||
help="Optionnal attachment.",
|
||||
"-a", "--attachement", type=str, nargs="+", help="Optionnal attachments.",
|
||||
)
|
||||
return parser.parse_args()
|
||||
|
||||
@ -83,21 +78,24 @@ def read_body(args):
|
||||
|
||||
|
||||
def read_join(args):
|
||||
try:
|
||||
with open(args.attachement, "rb") as fp:
|
||||
ctype, encoding = mimetypes.guess_type(args.attachement)
|
||||
if ctype is None or encoding is not None:
|
||||
ctype = "application/octet-stream"
|
||||
maintype, subtype = ctype.split("/", 1)
|
||||
metadata = {
|
||||
"filename": args.attachement,
|
||||
"maintype": maintype,
|
||||
"subtype": subtype,
|
||||
}
|
||||
return (fp.read(), metadata)
|
||||
except Exception as e:
|
||||
print("read error: %s" % e)
|
||||
exit(1)
|
||||
r = []
|
||||
for attachement in args.attachement:
|
||||
try:
|
||||
with open(attachement, "rb") as fp:
|
||||
ctype, encoding = mimetypes.guess_type(attachement)
|
||||
if ctype is None or encoding is not None:
|
||||
ctype = "application/octet-stream"
|
||||
maintype, subtype = ctype.split("/", 1)
|
||||
metadata = {
|
||||
"filename": attachement,
|
||||
"maintype": maintype,
|
||||
"subtype": subtype,
|
||||
}
|
||||
r.append((fp.read(), metadata))
|
||||
except Exception as e:
|
||||
print("read error: %s" % e)
|
||||
exit(1)
|
||||
return r
|
||||
|
||||
|
||||
def replace_values(bodytemplate, values):
|
||||
@ -130,7 +128,7 @@ def qencode_subject(message):
|
||||
return message.replace(subjectstr, qsubjectstr, 1)
|
||||
|
||||
|
||||
def send_message(message, to, attachment, args):
|
||||
def send_message(message, to, attachments, args):
|
||||
|
||||
lines = message.split("\n")
|
||||
|
||||
@ -180,8 +178,9 @@ def send_message(message, to, attachment, args):
|
||||
if ccvalue:
|
||||
msg["Cc"] = ccvalue
|
||||
msg.set_content(body)
|
||||
if attachment:
|
||||
msg.add_attachment(attachment[0], **attachment[1])
|
||||
if attachments:
|
||||
for attachment in attachments:
|
||||
msg.add_attachment(attachment[0], **attachment[1])
|
||||
|
||||
if args.verbose:
|
||||
print(msg)
|
||||
@ -213,7 +212,7 @@ if __name__ == "__main__":
|
||||
# optionnaly read the attachment of the mail
|
||||
attachment = None
|
||||
if args.attachement:
|
||||
attachment = read_join(args)
|
||||
attachments = read_join(args)
|
||||
|
||||
# counter to be able to pause each 10 mails send
|
||||
counter = 0
|
||||
@ -230,7 +229,7 @@ if __name__ == "__main__":
|
||||
body = replace_values(bodytemplate, values)
|
||||
|
||||
# send message
|
||||
send_message(body, recipient, attachment, args)
|
||||
send_message(body, recipient, attachments, args)
|
||||
|
||||
# pause every 10 mails for 5 secs so that the MTA doesn't explode
|
||||
counter = counter + 1
|
||||
|
Loading…
Reference in New Issue
Block a user