Skip to content

Commit cc264df

Browse files
committed
add send mail examples
1 parent 55b0ffb commit cc264df

4 files changed

Lines changed: 154 additions & 0 deletions

File tree

email/sendmail.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# -*- coding: utf-8 -*-
2+
3+
from email import encoders
4+
from email.header import Header
5+
from email.mime.text import MIMEText
6+
from email.utils import parseaddr, formataddr
7+
8+
import smtplib
9+
10+
def _format_addr(s):
11+
name, addr = parseaddr(s)
12+
return formataddr(( \
13+
Header(name, 'utf-8').encode(), \
14+
addr.encode('utf-8') if isinstance(addr, unicode) else addr))
15+
16+
from_addr = raw_input('From: ')
17+
password = raw_input('Password: ')
18+
to_addr = raw_input('To: ')
19+
smtp_server = raw_input('SMTP server: ')
20+
21+
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
22+
msg['From'] = _format_addr(u'Python爱好者 <%s>' % from_addr)
23+
msg['To'] = _format_addr(u'管理员 <%s>' % to_addr)
24+
msg['Subject'] = Header(u'来自SMTP的问候……', 'utf-8').encode()
25+
26+
server = smtplib.SMTP(smtp_server, 25)
27+
server.set_debuglevel(1)
28+
server.login(from_addr, password)
29+
server.sendmail(from_addr, [to_addr], msg.as_string())
30+
server.quit()

email/sendmail_html.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# -*- coding: utf-8 -*-
2+
3+
from email import encoders
4+
from email.header import Header
5+
from email.mime.text import MIMEText
6+
from email.utils import parseaddr, formataddr
7+
8+
import smtplib
9+
10+
def _format_addr(s):
11+
name, addr = parseaddr(s)
12+
return formataddr(( \
13+
Header(name, 'utf-8').encode(), \
14+
addr.encode('utf-8') if isinstance(addr, unicode) else addr))
15+
16+
from_addr = raw_input('From: ')
17+
password = raw_input('Password: ')
18+
to_addr = raw_input('To: ')
19+
smtp_server = raw_input('SMTP server: ')
20+
21+
msg = MIMEText('<html><body><h1>Hello</h1>' +
22+
'<p>send by <a href="http://www.python.org">Python</a>...</p>' +
23+
'</body></html>', 'html', 'utf-8')
24+
msg['From'] = _format_addr(u'Python爱好者 <%s>' % from_addr)
25+
msg['To'] = _format_addr(u'管理员 <%s>' % to_addr)
26+
msg['Subject'] = Header(u'来自SMTP的问候……', 'utf-8').encode()
27+
28+
server = smtplib.SMTP(smtp_server, 25)
29+
server.set_debuglevel(1)
30+
server.login(from_addr, password)
31+
server.sendmail(from_addr, [to_addr], msg.as_string())
32+
server.quit()

email/sendmail_inline.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# -*- coding: utf-8 -*-
2+
3+
from email import encoders
4+
from email.header import Header
5+
from email.mime.text import MIMEText
6+
from email.mime.base import MIMEBase
7+
from email.mime.multipart import MIMEMultipart
8+
from email.utils import parseaddr, formataddr
9+
10+
import smtplib
11+
12+
def _format_addr(s):
13+
name, addr = parseaddr(s)
14+
return formataddr(( \
15+
Header(name, 'utf-8').encode(), \
16+
addr.encode('utf-8') if isinstance(addr, unicode) else addr))
17+
18+
from_addr = raw_input('From: ')
19+
password = raw_input('Password: ')
20+
to_addr = raw_input('To: ')
21+
smtp_server = raw_input('SMTP server: ')
22+
23+
msg = MIMEMultipart()
24+
msg['From'] = _format_addr(u'Python爱好者 <%s>' % from_addr)
25+
msg['To'] = _format_addr(u'管理员 <%s>' % to_addr)
26+
msg['Subject'] = Header(u'来自SMTP的问候……', 'utf-8').encode()
27+
28+
# add MIMEText:
29+
msg.attach(MIMEText('<html><body><h1>Hello</h1>' +
30+
'<p><img src="cid:0"></p>' +
31+
'</body></html>', 'html', 'utf-8'))
32+
33+
# add file:
34+
with open('/Users/michael/Downloads/test.png', 'rb') as f:
35+
mime = MIMEBase('image', 'png', filename='test.png')
36+
mime.add_header('Content-Disposition', 'attachment', filename='test.png')
37+
mime.add_header('Content-ID', '<0>')
38+
mime.add_header('X-Attachment-Id', '0')
39+
mime.set_payload(f.read())
40+
encoders.encode_base64(mime)
41+
msg.attach(mime)
42+
43+
server = smtplib.SMTP(smtp_server, 25)
44+
server.set_debuglevel(1)
45+
server.login(from_addr, password)
46+
server.sendmail(from_addr, [to_addr], msg.as_string())
47+
server.quit()

email/sendmail_multipart.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# -*- coding: utf-8 -*-
2+
3+
from email import encoders
4+
from email.header import Header
5+
from email.mime.text import MIMEText
6+
from email.mime.base import MIMEBase
7+
from email.mime.multipart import MIMEMultipart
8+
from email.utils import parseaddr, formataddr
9+
10+
import smtplib
11+
12+
def _format_addr(s):
13+
name, addr = parseaddr(s)
14+
return formataddr(( \
15+
Header(name, 'utf-8').encode(), \
16+
addr.encode('utf-8') if isinstance(addr, unicode) else addr))
17+
18+
from_addr = raw_input('From: ')
19+
password = raw_input('Password: ')
20+
to_addr = raw_input('To: ')
21+
smtp_server = raw_input('SMTP server: ')
22+
23+
msg = MIMEMultipart()
24+
msg['From'] = _format_addr(u'Python爱好者 <%s>' % from_addr)
25+
msg['To'] = _format_addr(u'管理员 <%s>' % to_addr)
26+
msg['Subject'] = Header(u'来自SMTP的问候……', 'utf-8').encode()
27+
28+
# add MIMEText:
29+
msg.attach(MIMEText('send with file...', 'plain', 'utf-8'))
30+
31+
# add file:
32+
with open('/Users/michael/Downloads/test.png', 'rb') as f:
33+
mime = MIMEBase('image', 'png', filename='test.png')
34+
mime.add_header('Content-Disposition', 'attachment', filename='test.png')
35+
mime.add_header('Content-ID', '<0>')
36+
mime.add_header('X-Attachment-Id', '0')
37+
mime.set_payload(f.read())
38+
encoders.encode_base64(mime)
39+
msg.attach(mime)
40+
41+
server = smtplib.SMTP(smtp_server, 25)
42+
server.set_debuglevel(1)
43+
server.login(from_addr, password)
44+
server.sendmail(from_addr, [to_addr], msg.as_string())
45+
server.quit()

0 commit comments

Comments
 (0)