smtplib简单易用,以下python发送邮件代码中,常规邮件的核心代码也只有3,4行。
完整代码:
#!/usr/bin/env python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText # 引入smtplib和MIMEText
host = 'smtp.163.com' # 设置发件服务器地址
port = 25 # 设置发件服务器端口号。注意,这里有SSL和非SSL两种形式
sender = 'alexkh3@163.com' # 设置发件邮箱,一定要自己注册的邮箱
pwd = 'XXXXXX' # 设置发件邮箱的密码,等会登陆会用到
receiver = 'zhangyanan2@tuniu.com' # 设置邮件接收人,这里是我的公司邮箱
body = '<h1>Hi</h1><p>test</p>' # 设置邮件正文,这里是支持HTML的
msg = MIMEText(body, 'html') # 设置正文为符合邮件格式的HTML内容
msg['subject'] = 'Hello world' # 设置邮件标题
msg['from'] = sender # 设置发送人
msg['to'] = receiver # 设置接收人
s = smtplib.SMTP(host, port) # 注意!如果是使用SSL端口,这里就要改为SMTP_SSL
s.login(sender, pwd) # 登陆邮箱
s.sendmail(sender, receiver, msg.as_string()) # 发送邮件!
print 'over' # 发送成功就会提示
核心代码:
注意,如果是使用SSL发送,需要使用SMTP_SSL,其他都是一样的。
封装代码:
def sm(receiver, title, body):
host = 'smtp.163.com'
port = 25
sender = 'alexkh3@163.com'
pwd = 'XXXXXX'
msg = MIMEText(body, 'html')
msg['subject'] = title
msg['from'] = sender
msg['to'] = receiver
s = smtplib.SMTP(host, port)
s.login(sender, pwd)
s.sendmail(sender, receiver, msg.as_string())
print 'The mail named %s to %s is sended successly.' % (title, receiver)
以后需要用到这段python发送邮件的代码时,只要import进来,然后sm(receiver, title, body)就可以了。
附表 - 常用邮箱发件服务器及端口