Python 邮件发送:

Python发送邮件是有内置邮件发送模块,采用smtp(由描述源地址到目的地址的轻量级邮件协议)协议进行邮件发送,smtp协议在开发过程当中被分为2种:
1、smtp/imap 用来发送邮件
2、Smtp/pop3 用来接收邮件
常见的 163、qq、网易、新浪、等邮箱都有提供的smpt服务器。

开启163或腾讯邮箱发送邮件服务,生成授权码

python自动化发短信 python发送短信脚本_短信发送


163邮箱服务器地址和端口:

python自动化发短信 python发送短信脚本_邮件发送_02


腾讯邮箱服务器地址和端口:

python自动化发短信 python发送短信脚本_python自动化发短信_03

先编写一个测试脚本,使用python内置模块

"""
此脚本只作为邮件发送测试
"""
import smtplib  # 登陆邮件服务器,进行邮件发送
from email.mime.text import MIMEText  # 负责构建邮件格式

# 邮件主题
subject = "哗啦啦"
# 邮件内容
content = "哈哈,猜猜我是谁"
# 发送人
sender = "137****2@163.com"
# 接收人(一串)
recver = """bow@foxmail.com,
9***7@qq.com,
2***559@qq.com
1***959@qq.com
7***9368@qq.com"""

# 授权码
password = ""

# 构造MIMEText对象(邮件),第一个参数就是邮件正文,第二个参数是MIME的subtype,传入'plain',最终的MIME就是'text/plain',最后一定要用utf-8编码保证多语言兼容性
message = MIMEText(content,"plain","utf-8")
message["Subject"] = subject
message["To"] = recver
message["From"] = sender

# 创建SMTP客户端对象,连接smtp服务器
smtp = smtplib.SMTP_SSL("smtp.163.com",994)
# 登录
smtp.login(sender,password)
# 发送邮件,第一个参数是发送人,第二个是接收人,必须是列表,第三个参数是邮件信息,将msg(MIMEText对象或者MIMEMultipart对象)变为str
smtp.sendmail(sender,recver.split(",\n"),message.as_string())
# 关闭客户端连接
smtp.close()

python自动化发短信 python发送短信脚本_服务器_04

Django一如既往的对发送邮件也进行了封装,所以对setting进行配置,添加Django邮件发送服务

# 配置邮件服务器
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 发送邮件采用smtp服务

EMAIL_USE_TLS = False  #是否使用tls加密方式

EMAIL_HOST = 'smtp.qq.com' # 腾讯邮箱服务器地址
EMAIL_PORT = 25 # smtp端口
EMAIL_HOST_USER = '9**077@qq.com' # 发送人
EMAIL_HOST_PASSWORD = 'euaqg*****cfi' # 授权码
DEFAULT_FROM_EMAIL = '9**077@qq.com' # 默认发送人

邮件视图函数

from django.core.mail import send_mail
from django.conf import settings
def sendMail(request):
    msg = '服务器运行良好'
    send_mail(
        subject='Django邮件测试', # 邮件主题
        message=msg, # 邮件内容
        from_email=settings.EMAIL_HOST_USER, # 发件人
        recipient_list=["13***2@163.com"],  # 收件人,注意是一个列表,可以群发
        fail_silently=False  # 为True忽略邮件发送时报错的异常
    )
    return HttpResponse('测试邮件已发出请注意查收')

测试:

python自动化发短信 python发送短信脚本_服务器_05


python自动化发短信 python发送短信脚本_邮件发送_06

发送短信(接口请求形式)

短信发送都需要借助短信发送平台,使用平台发送短信,通常是收费。

今天要使用的平台是互亿平台。

python自动化发短信 python发送短信脚本_短信发送_07


python自动化发短信 python发送短信脚本_python自动化发短信_08


python自动化发短信 python发送短信脚本_服务器_09


python自动化发短信 python发送短信脚本_短信发送_10


python自动化发短信 python发送短信脚本_短信发送_11

编写短信测试代码:

#coding:utf-8
import requests

url = "http://106.ihuyi.com/webservice/sms.php?method=Submit"

account = "C57900965"
password = "9c93afbf*********2f5786a9"
mobile = "13*****82"
content = "您的验证码是:201918。请不要把验证码泄露给其他人。"
#定义请求的头部
headers = {
    "Content-type": "application/x-www-form-urlencoded",
    "Accept": "text/plain"
}
#定义请求的数据
data = {
    "account": account,
    "password": password,
    "mobile": mobile,
    "content": content,
}
#发起数据
response = requests.post(url,headers = headers,data=data)
    #url 请求的地址
    #headers 请求头部
    #data 请求的数据

print(response.content.decode())

python自动化发短信 python发送短信脚本_发送邮件_12