环境:centos7.2 python2.7.6 简介:通过编写的Python 脚本实现调用不同的邮件服务器465 端口发送短信。共四个。 脚本内容如下,具体内容不做介绍,主要是讲解如何通过该脚本实现上述需求。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
print("邮件发送测试默认使用的是465端口,邮件主机是使用的smtp.163.com")
my_sender = raw_input("邮件账户:")
my_pass = raw_input("邮件密码:")
my_user = raw_input("收件人:")
def mail():
ret=True
try:
msg=MIMEText('填写邮件内容','plain','utf-8')
msg['From']=formataddr(["我是发件人",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To']=formataddr(["我是收件人",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject']="我是邮件主题发送邮件测试" # 邮件的主题,也可以说是标题
server=smtplib.SMTP_SSL("smtp.163.com", 465) # 发件人邮箱中的SMTP服务器,端口是加密465端口
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=False
ret=False
return ret
ret=mail()
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
测试一:
通过该脚本调用 163 邮箱的 smtp 465 端口发送短信。测试前,如果没有 163 邮箱需要首先注册一个 163 邮箱。
参考上述信息填写好注册信息后 ,点击 立即注册。然后在新界面点击进入邮箱。
进入邮箱界面后 点击设置--选择如下图标注选项。
然后再下图勾画部分设置授权码
设置授权码的时候 需要您重新验证 手机验证码、
然后输入授权码,此授权码后续发送邮件需要用到。
后续就需要我们连接centos 服务器。然后 vim 创建一个 sendmail.py 文件。将脚本内容粘贴进去,因为脚本默认是 163 的 。所以不用进行更改。
保存后退出,然后chmod +x sendmail.py 给对应脚本文件授权。并执行python sendmail.py 然后输入163 账号 授权码,收件人邮箱地址,然后依次回车就可以看是否发送成功。效果如图。
二,通过qq邮箱smtp 发送邮件。
第一步注册qq邮箱,详细过程就不介绍了。和 163 邮箱注册流程基本一致。
qq 邮箱注册好后,点击设置界面。如下图。
找到如图所示位置
点击验证后会有一个授权码出现,该授权码就是用来发送邮件时需要验证的 。
上述流程 操作完毕后,接下来就是 打开centos 系统 找到对应脚本,进行 修改。qq邮箱可以修改为smtp.qq.com 465 端口不变 脚本上方的 print 那也可以修改下,这个只是一个输出的内容。为了看着舒服,如果你通过qq 邮箱发送邮件就把后面的smtp地址修改为qq 的就可以了。
接下来验证下成果。成功接收到了邮件。
测试三。验证通过阿里云个人邮箱发送邮件。
首先注册一个 阿里邮箱。注册好后该smtp 和 pop 是默认开启的。不用单独设置授权码,
直接登陆centos 服务器,打开sendmail 脚本。然后 修改 邮件服务器为 smtp.aliyun.com 保存 。退出。
直接验证是否可以发信。测试成功,但是没有收到邮件。最后发现是被认定为垃圾邮件被退信了。。。。
测试四 通过139邮箱发送邮件。139 邮箱smtp默认开启。地址是smtp.139.com
测试发送。成功。