1 import os
, email
.Message
, smtplib
4 def send(from_address
, to_addresses
, cc_addresses
, subject
, message_body
):
6 Send out a plain old text email. It uses sendmail by default, but
7 if that fails then it falls back to using smtplib.
10 from_address: the email address to put in the "From:" field
11 to_addresses: either a single string or an iterable of
12 strings to put in the "To:" field of the email
13 cc_addresses: either a single string of an iterable of
14 strings to put in the "Cc:" field of the email
15 subject: the email subject
16 message_body: the body of the email. there's no special
17 handling of encoding here, so it's safest to
18 stick to 7-bit ASCII text
20 # addresses can be a tuple or a single string, so make them tuples
21 if isinstance(to_addresses
, str):
22 to_addresses
= [to_addresses
]
24 to_addresses
= list(to_addresses
)
25 if isinstance(cc_addresses
, str):
26 cc_addresses
= [cc_addresses
]
28 cc_addresses
= list(cc_addresses
)
30 message
= email
.Message
.Message()
31 message
["To"] = ", ".join(to_addresses
)
32 message
["Cc"] = ", ".join(cc_addresses
)
33 message
["From"] = from_address
34 message
["Subject"] = subject
35 message
.set_payload(message_body
)
37 server
= smtplib
.SMTP("localhost")
38 server
.sendmail(from_address
, to_addresses
+ cc_addresses
, message
.as_string())