python smtp发送邮件
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
Python对SMTP支持有smtplib和email两个模块
以下是常用邮箱SMTP端口及登录说明
邮箱 | SMTP服务器 | 登录口令 | 支持加密方式 | 对应端口号 |
---|---|---|---|---|
163 | smtp.163.com | 个人设置授权码 | 明文/SSL加密 | 25/465 |
126 | smtp.126.com | 个人设置授权码 | 明文/SSL加密 | 25/465 |
smtp.qq.com | 系统分配授权码 | 明文/SSL加密/TLS加密 | 25/465/587 | |
Gmail | smtp.gmail.com | 邮箱登录密码 | TLS加密 | 587 |
mail.py 文件
import smtplib
from email.mime.text import MIMEText
class Email():
def __init__(self, mail_user, mail_password, smtp_sever, smtp_port):
self.server = smtplib.SMTP_SSL(smtp_sever, smtp_port)
self.server.ehlo()
self.server.login(mail_user, mail_password)
def sendmail(self, _from, _to, subject, content):
if type(_to) == str:
_to = [_to]
msg = MIMEText(content, 'plain', 'utf-8')
msg["Subject"] = subject
msg["From"] = _from
msg["To"] = ", ".join(_to)
self.server.sendmail(_from, _to, msg.as_string())
def close(self):
self.server.close()
使用方法
from mail import Email
Email = Email('账号','密码','smtp.163.com',465)
Email.sendmail('发件人','收件人','主题','内容')
Email.close()