欢迎来到夜的世界

莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生.料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。
扩大
缩小

Python调取邮箱发送邮件

一 . 发送普通邮件

数据 

res = [
    {
        "Roles": ".流浪法师 ",
        "name": "大魔王",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "圣枪游侠",
        "name": "奥巴马",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 800
    },
    {
        "Roles": "暗黑元首",
        "name": "球女",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 800
    },
    {
        "Roles": "暗夜猎手",
        "name": "VN ",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 500
    },
    {
        "Roles": "傲之追猎者",
        "name": "狮子狗 ",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "爆破鬼才",
        "name": "炸弹人",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "冰晶凤凰",
        "name": "冰鸟",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 800
    },
    {
        "Roles": "惩戒之箭",
        "name": "箭男",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "大发明家",
        "name": "大头",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 400
    },
    {
        "Roles": "堕落天使",
        "name": "莫甘娜",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 600
    },
    {
        "Roles": "刀锋之影",
        "name": "男刀",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "德邦总管",
        "name": "菊花信",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "德玛西亚皇子",
        "name": "皇子",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "德玛西亚之力",
        "name": "草丛伦",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "德玛西亚之翼",
        "name": "鸟人",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "恶魔小丑",
        "name": "小丑",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "发条魔灵",
        "name": "发条",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "法外狂徒",
        "name": "男枪",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "放逐之刃",
        "name": "锐雯",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    },
    {
        "Roles": "风暴之怒",
        "name": "风女",
        "rule": "规矩",
        "Combat_effectiveness": 1000,
        "price" : 1500
    }
]

代码 

import datetime
import smtplib
from email.mime.text import MIMEText

today = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
li = []
for table in res:
    if table['price'] - table["Combat_effectiveness"] != 0:
        rule2 = "规矩"
    else:
        rule2 = "规矩"
    if table["rule"] == rule2:
        d = {
            "time": today,
            "Roles": table["Roles"],
            "name": table["name"],
            "price": table["price"],
            "Combat_effectiveness": table["Combat_effectiveness"],

        }
        li.append(d)

li2 = []
for i in li:
    res = "时间:{} , 角色:{} , 名字:{} , 战斗力:{} , 价格:{}".format(i["time"],i["Roles"],i["name"],i["Combat_effectiveness"],i["price"])
    li2.append(res)

li3 = "\n".join(li2)

print("===============",li3)
# 设置服务器所需信息
# 邮箱服务器地址
mail_host = 'smtp.xxx.com'
# 用户名
mail_user = 'xxxxxxx'
# 密码(部分邮箱为授权码)
mail_pass = 'xxxxxxx'
# 邮件发送方邮箱地址
sender = 'xxxx.xx.xxx'
# 邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发
receivers = ['xxxx@163.com','xxxxxx@163.com']

# 设置email信息
# 邮件内容设置 , str
message = MIMEText(li3, 'plain', 'utf-8')
# 邮件主题
message['Subject'] = '主人来信息了'
# 发送方信息
message['From'] = sender
# 接受方信息
message['To'] = receivers[0]

# 登录并发送邮件
try:
    smtpObj = smtplib.SMTP()
    # 连接到服务器
    smtpObj.connect(mail_host, 25)
    # 登录到服务器
    smtpObj.login(mail_user, mail_pass)
    # 发送
    smtpObj.sendmail(
        sender, receivers, message.as_string())
    # 退出
    smtpObj.quit()
    print('success')
except smtplib.SMTPException as e:
    print('error', e)  # 打印错误

效果 

 

二 . 发送附件形式

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

result = {
    "table_name": "邮件人员清单.xlsx",
    "content": "这是一封发送附件的邮件",
    "email_li": ["xxxxxx@163.com"]
}

table_name = result["table_name"]
content = result["content"]
email_li = result["email_li"]

title_name = table_name.split(".")[0]

_user = 'user_name'
_pwd = 'passwd'
_to = email_li

msg = MIMEMultipart()
msg["Subject"] = title_name
msg["From"] = _user
msg["To"] = _to[0]

part = MIMEText(content)
msg.attach(part)

# Excel存放路径
file_name = "G:/rest/{}".format(table_name)

part = MIMEApplication(open(file_name, 'rb').read())
part.add_header('Content-Disposition', 'attachment', filename=table_name)
msg.attach(part)

s = smtplib.SMTP('xxxxxxx.qq.com', timeout=25)
s.login(_user, _pwd)
s.sendmail(_user, _to, msg.as_string())
s.close()

注意 : 处理多种形态的邮件主体我们需要 MIMEMultipart 类,而处理图片需要 MIMEImage 类, TXT文本需要 MIMEText 类.

  但是如果有的不知道,去百度或者可以都用  MIMEApplication 类 (万能的类)

效果 : 

 

 

 

三 . 发送图片 

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.mime.text import MIMEText

result = {
    "table_name": "一张图片",
    "content": "图片",
    "email_li": ["xxxxxx@163.com"]
}

table_name = result["table_name"]
content = result["content"]
email_li = result["email_li"]

_user = 'xxxxxxxx'
_pwd = 'xxxxxxx'
_to = email_li

msg = MIMEMultipart()
msg["Subject"] = table_name
msg["From"] = _user
msg["To"] = _to[0]

part = MIMEText(content)
msg.attach(part)

img_name = "图标.png"
img_file = "G:/rest/{}".format(img_name)
imageApart = MIMEImage(open(img_file, 'rb').read(), img_name.split('.')[-1])
imageApart.add_header('Content-Disposition', 'attachment', filename=img_name)
msg.attach(imageApart)

s = smtplib.SMTP('xxxxxx.stmp', timeout=25)
s.login(_user, _pwd)
s.sendmail(_user, _to, msg.as_string())
s.close()

效果 : 

posted on 2020-03-27 17:24  二十四桥_明月夜  阅读(251)  评论(0编辑  收藏  举报

导航