Python发邮件脚本,Python调用163邮箱SMTP服务实现邮件群发

时间:2022-07-25
本文章向大家介绍Python发邮件脚本,Python调用163邮箱SMTP服务实现邮件群发,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

邮件营销,一个昔日辉煌,如今没落的广告营销方式,曾经的恶意广告邮件群发,到现在还存留着的大站协议群发,可能还是有不少人能够做到正常群发邮件,但大概率很多人都不会点开邮件查看邮件内容吧,除非是很许可的,重要的邮件通知,比如面试相关邮件。

不过国外,尤其是外贸,对于邮件营销,邮件的收发还是存在的,这就有了下面这个命题,Python发邮件脚本,本渣渣当然不会,直接调包吧,度娘搜索现成的脚本,例子,即可,好好的做一个调包侠,难道不香吗?

关于SMTP

SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。

SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。

增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

网易163免费邮箱相关服务器信息:

PyEmail库 安装

pip install PyEmail

PyEmail库 使用

模块名:Pyemail

包含类:PyEmail()

实例化:mail = PyEmail('mixed')

参数有:alternative,related,mixed(来自于email模块)

  1. 登录三方SMTP:mail.enter(mail_host=, port=, mail_user, mail_pass=)

第一参数是第三方SMTP地址 第二参数是对应端口 第三参数是邮箱账号 第四参数是授权码

  1. 发送邮件:mail.sendemail(sender=, receivers=)

第一参数是发送者邮箱地址(字符串格式) 第二参数是接收者邮箱地址(字符串的列表)

  1. 构造头部信息:mail.header_info(from_= ; to_= ; subject= )

第一参数是发件人(字符串格式)

第二参数是收件人(字符串格式)

第三参数是主题信息(字符串格式)

  1. 构造纯文本内容:mail.Text(text=)

唯一参数text,纯文本内容(字符串格式)

  1. 构造超文本内容:mail.Html(hype_text=)

唯一参数hype_text,超文本内容(字符串格式)

  1. 构造图片内容:mail.Image(pic_address=, pic_cid)

第一参数是图片地址(字符串格式)

第二参数是图片id(字符串格式),与超文本中cid保持一致

  1. 构造附件内容:mail.Enc(enc_address=. enc_name=)

第一参数是附件地址(字符串格式)

第二参数是附件名称(字符串格式),在邮件中显示的名称

源码参考

#Python 网易邮箱简单发送邮件
# -*- coding: utf-8 -*-


import smtplib  # 导入PyEmail
from email.mime.text import MIMEText
import time


# 邮件构建

def send(i):
    subject = f"【第{i}封】滴滴答答~胖子快收邮件!"  # 邮件标题
    sender = "xxxxx@163.com"  # 发送方
    content = "国庆中秋双节快乐!"
    recver = "xxxxxx@qq.com"  # 接收方
    password = "*******" #邮箱密码
    message = MIMEText(content, "plain", "utf-8")
    # content 发送内容     "plain"文本格式   utf-8 编码格式

    message['Subject'] = subject  # 邮件标题
    message['To'] = recver  # 收件人
    message['From'] = sender  # 发件人

    smtp = smtplib.SMTP_SSL("smtp.163.com", 994)  # 实例化smtp服务器
    smtp.login(sender, password)  # 发件人登录
    smtp.sendmail(sender, [recver], message.as_string())  # as_string 对 message 的消息进行了封装
    smtp.close()
    print("发送邮件成功!!")



if __name__=='__main__':
    for i in range(1,11):
        send(i)
        time.sleep(8)

群发效果

测试了一下163免费邮箱发送QQ邮箱,几乎都进入垃圾箱,发十封邮件,可能只有一两封没有进垃圾箱,可想而知,现今对于邮件营销的的控制,相信也从中可以看出昔日广告邮件的疯狂程度,话说,现在国内谁还看邮件呢,除了必要的邮件通知,几乎大概率都是广告邮件,恶意营销吧!

参考来源:

什么是POP3、SMTP和IMAP?

https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac22dc0e9af8168582a

【私人订制Python模块库】Pyemail:更方便快捷地发送电子邮件

https://blog.csdn.net/nilvya/article/details/104658472

Python PyEmail包_程序模块 - PyPI - Python中文网

https://www.cnpython.com/pypi/pyemail

python使用163邮箱发送邮件

https://blog.csdn.net/qlzy_5418/article/details/86661883