首页 > 其他 > 详细

对邮箱的操作

时间:2020-10-10 09:57:34      阅读:41      评论:0      收藏:0      [点我收藏+]
学习地址:http://blog.szwyll.com/archives/146
1.登录邮箱
    # 定义一些常量
    # 收件人email, 发件人email,登录邮箱的授权码(mail_password)
    server = smtplib.SMTP()
    server.connect(‘smtp.qq.com‘, 25)
    server.login(mail_name, mail_password)
2.发送邮件
    # 定义邮件内容
    # 纯文本邮件,html文件,包含附件的文件
    # 邮件的必须内容:From:发件人email  To: 收件人email(多个收件人用,隔开)  Subject: 邮件主题
    发送邮件
    server.sendmail(mail_name, receiver, msg.as_string())
    server.quit()

 

一、发送纯文本文件

import smtplib
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header

receiver = [xxx@qq.com]
mail_name = xxxx@qq.com  # 发送人邮箱地址
mail_password = pqymqfvvlmdabcbc  # 注意:这里不是密码,而应该填写授权码!!


# 编辑邮件内容
# 1.收件人,主题,正文
msg = MIMEText(hello, send by Python..., plain, utf-8)
msg[From] = mail_name
msg[To] = ‘‘.join(receiver)
msg[Subject] = Header(来自SMTP的问候..., utf-8).encode()

# 发送内容
try:
    # 登陆邮箱
    server = smtplib.SMTP()
    server.connect(smtp.qq.com, 25)
    server.login(mail_name, mail_password)

    # 发送邮件
    server.sendmail(mail_name, receiver, msg.as_string())
    server.quit()
    print(Success)
except smtplib.SMTPException as e:
    print(Failure:, str(e))

 

二、发送HTML邮件

import smtplib
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header

receiver = [xxx@qq.com]
mail_name = xxxx@qq.com  # 发送人邮箱地址
mail_password = pqymqfvvlmdabcbi  # 注意:这里不是密码,而应该填写授权码!!


# 编辑邮件内容
# 1.收件人,主题,正文
msg = MIMEText(<html>
               <body>
               <h1>Hello</h1>
               <p>send by 
               <a href=\"http://www.baidu.com\">baidu</a>
               ...
               </p></body></html>, html, utf-8)
msg[From] = mail_name
msg[To] = ‘‘.join(receiver)
msg[Subject] = Header(来自SMTP的问候..., utf-8).encode()

# 发送内容
try:
    # 登陆邮箱
    server = smtplib.SMTP()
    server.connect(smtp.qq.com, 25)
    server.login(mail_name, mail_password)

    # 发送邮件
    server.sendmail(mail_name, receiver, msg.as_string())
    server.quit()
    print(Success)
except smtplib.SMTPException as e:
    print(Failure:, str(e))

三、发送附件邮件

import smtplib
from email import encoders
from email.mime.application import MIMEApplication
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header

receiver = [xxx@qq.com]
mail_name = xxxx@qq.com  # 发送人邮箱地址
mail_password = pqymqfvvlmdabcbc  # 注意:这里不是密码,而应该填写授权码!!


# 编辑邮件内容
# 1.收件人,主题,正文
# 邮件本身(MIMEMultipart) = 邮件正文(MIMEText) + MIMEBase(附件)
#
msg = MIMEMultipart()
# 定义发件人,收件人,邮件主题
msg[From] = mail_name
msg[To] = ‘‘.join(receiver)
msg[Subject] = Header(来自SMTP的问候..., utf-8).encode()
# 添加邮件正文
msg.attach(MIMEText(send with file..., plain, utf-8))
# 添加附件
with open(F:\\python_requests\\myU.jpg, rb) as f:
    # 设置附件的MIME和文件名
    mime = MIMEBase(image, jpg, filename=myU.jpg)
    # 加上必要的头信息:
    mime.add_header(Content-Disposition, attachment, filename=test.png)
    mime.add_header(Content-ID, <0>)
    mime.add_header(X-Attachment-Id, 0)
    # 读取附件内容
    mime.set_payload(f.read())
    # 用Base64编码
    encoders.encode_base64(mime)
    # 添加到MIMEMultipart
    msg.attach(mime)

try:
    # 登陆邮箱
    server = smtplib.SMTP()
    server.connect(smtp.qq.com, 25)
    server.login(mail_name, mail_password)

    # 发送邮件
    server.sendmail(mail_name, receiver, msg.as_string())
    server.quit()
    print(Success)
except smtplib.SMTPException as e:
    print(Failure:, str(e))

四、再三的基础上将附件嵌入到正文

import smtplib
from email import encoders
from email.mime.application import MIMEApplication
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header

receiver = [xxx@qq.com]
mail_name = xxxx@qq.com  # 发送人邮箱地址
mail_password = pqymqfvvlmdabcbc  # 注意:这里不是密码,而应该填写授权码!!


# 编辑邮件内容
# 1.收件人,主题,正文
# 邮件本身(MIMEMultipart) = 邮件正文(MIMEText) + MIMEBase(附件)
# alternative:利用MIMEMultipart就可以组合一个HTML和Plain,要注意指定subtype是alternative:
# 如果收件人无法查看HTML格式的邮件,就可以自动降级查看纯文本邮件。

msg = MIMEMultipart(alternative)
# 定义发件人,收件人,邮件主题

smtp_server = smtp.qq.com
smtp_port = 587
msg[From] = mail_name
msg[To] = ‘‘.join(receiver)
msg[Subject] = Header(来自SMTP的问候..., utf-8).encode()
# 添加邮件正文
msg.attach(MIMEText(hello, plain, utf-8))
msg.attach(MIMEText(<html><body><h1>Hello</h1> +
    <p><img src="cid:0"></p> +
    </body></html>, html, utf-8))
# 添加附件
with open(F:\\python_requests\\myU.jpg, rb) as f:
    # 设置附件的MIME和文件名
    mime = MIMEBase(image, jpg, filename=myU.jpg)
    # 加上必要的头信息:
    mime.add_header(Content-Disposition, attachment, filename=test.png)
    mime.add_header(Content-ID, <0>)
    mime.add_header(X-Attachment-Id, 0)
    # 读取附件内容
    mime.set_payload(f.read())
    # 用Base64编码
    encoders.encode_base64(mime)
    # 添加到MIMEMultipart
    msg.attach(mime)

try:
    # 登陆邮箱
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    # server = smtplib.SMTP()
    # server.connect(‘smtp.qq.com‘, 25)
    server.login(mail_name, mail_password)

    # 发送邮件
    server.sendmail(mail_name, receiver, msg.as_string())
    server.quit()
    print(Success)
except smtplib.SMTPException as e:
    print(Failure:, str(e))

 

对邮箱的操作

原文:https://www.cnblogs.com/854594834-YT/p/13789718.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!