python-爬虫-邮箱发送

# -*- coding: utf-8 -*-
#发送信息到邮箱
import email.utils
import smtplib
from email.mime.text import MIMEText    #发送文本
from email.mime.image import MIMEImage  #发送图片
from email.mime.multipart import MIMEMultipart
from email.header import Header

"""
POP3/SMTP 设置方法
用户名/帐户: 你的QQ邮箱完整的地址
密码: 生成的授权码
电子邮件地址: 你的QQ邮箱的完整邮件地址
接收邮件服务器: pop.qq.com,使用SSL,端口号995
发送邮件服务器: smtp.qq.com,使用SSL,端口号465或587
"""
#smtp.qq.com,使用SSL,端口号465或587
#授权码:lpquuutuiiuncaih

email_addr_send = "30xxxxx@qq.com"  #发送者邮箱地址
email_addr_recv = "30xxxxx@qq.com"  #接收者邮箱地址
email_pass = "lpquuutui"     #授权码

#smtp邮箱服务器
smtp_server = 'smtp.qq.com'

#发送文本
def send_text():
    # MIMEText三个主要参数
    # 1. 邮件内容
    # 2. MIME子类型,plain表示text类型
    # 3. 邮件编码格式,使用"utf-8"避免乱码
    msg = MIMEText('恭喜,您在12306抢票成功,请及时支付!', 'plain', 'utf-8')  # 邮件内容

    # 发件人
    # msg['From'] = formataddr([发件人, 发件人邮箱地址])
    # msg['From'] = email_addr    #发送者的邮箱地址
    msg['From'] = email.utils.formataddr(("输入发送者的姓名", email_addr_send))

    # 收件人:可以有多个、写成一个列表
    # [xxx@qq.com, 111@qq.com]
    # msg['To'] = email.utils.formataddr(("输入接收者的姓名", email_addr_recv))
    msg['To'] = email_addr_recv  # 接收者的邮箱地址

    # 邮件标题
    # msg['Subject'] = "Hehuyi Test"
    subject = '恭喜您,Python已为您在12306抢票成功,请及时支付! '
    msg['Subject'] = Header(subject, 'utf-8')

    # 实例化stmp对象
    # 由于安全问题,通常不直接使用smtplib.SMTP来实例化,第三方邮箱会认为它是不安全的而报错
    # 使用加密过的SMTP_SSL来实例化
    stmp_object = smtplib.SMTP_SSL(smtp_server)

    # 链接stmp服务器
    # SMTP.connect(host,port):连接远程smtp主机
    stmp_object.connect(smtp_server, 465)  # 链接服务器

    # 登录stmp服务器
    # SMTP.login(user, password):远程smtp主机的校验方法
    stmp_object.login(email_addr_send, email_pass)  # 登录邮箱地址

    # 向其他人发送邮箱内容
    # SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]):实现邮件的发送功能
    # stmp_object.sendmail(发件人、收件人(列表)、邮件内容)
    stmp_object.sendmail(email_addr_send, email_addr_recv.split(','), msg.as_string())  # 向邮箱发送消息

    print('邮件发送成功!')
    stmp_object.quit()


#发送图片
def send_img():

    msg = MIMEMultipart()
    msg['From'] = email.utils.formataddr(('我', email_addr_send))
    msg['To'] = email.utils.formataddr(("你", email_addr_recv))
    msg['Subject'] = "邮件标题:发送图片"

    with open('2.png', 'rb') as f:
        img = f.read()
    msg_img = MIMEImage(img)

    msg.attach(msg_img)

    #连接stmp服务
    stmp_svc = smtplib.SMTP_SSL(smtp_server)
    stmp_svc.connect(smtp_server, 465)
    stmp_svc.login(email_addr_send, email_pass)
    stmp_svc.set_debuglevel(True)

    try:
        stmp_svc.sendmail(email_addr_send, email_addr_recv, msg=msg.as_string())
    except Exception as e:
        print(e)

if __name__ == '__main__':
    #send_text()
    send_img()

 

posted @ 2024-06-12 17:22  little小新  阅读(23)  评论(0编辑  收藏  举报