检测公网 ip 变化后发送邮箱(一)- Python 发送邮箱代码
家里的带宽申请了公网 ip,通过 pppoe 拨号的方式,运营商会随机分配一个公网,但是两三天就会变动一次。想着能不能定时监测公网 ip ,发邮件通知我。
当然,这是已经做了 ddns 的情况了,如果知道公网 ip,即使 ddns 不生效依然不会影响正常访问。
下面是发送邮箱的代码:
# smtplib 用于邮件的发信动作
import smtplib
# email 用于构建邮件内容
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 构建邮件头
from email.header import Header
# 发信方的信息:发信邮箱,QQ 邮箱授权码
from_addr = 'xxx@qq.com'
password = 'xxx'
# 收信方邮箱
to_addr = 'xxx@qq.com'
# 发信服务器
smtp_server = 'smtp.qq.com'
html_msg = """
<p>Python 邮件发送HTML格式文件测试...</p>
<p><a href="http://www.runoob.com">这是一个链接</a></p>
"""
# 创建一个带附件的实例msg
msg = MIMEMultipart()
msg['From'] = Header('发送者') # 发送者
msg['To'] = Header('接收者') # 接收者
subject = 'Python SMTP 邮件测试'
msg['Subject'] = Header(subject, 'utf-8') # 邮件主题
# 邮件正文内容
msg.attach(MIMEText(html_msg, 'html', 'utf-8'))
try:
smtpobj = smtplib.SMTP_SSL(smtp_server)
smtpobj.connect(smtp_server, 465) # 建立连接--qq邮箱服务和端口号
smtpobj.login(from_addr, password) # 登录--发送者账号和口令
smtpobj.sendmail(from_addr, to_addr, msg.as_string())
print("邮件发送成功")
except smtplib.SMTPException:
print("无法发送邮件")
finally:
# 关闭服务器
smtpobj.quit()
经过测试,上面的代码是可以完美运行的。需要注意的是,需要修改部分自己的配置。
阅读剩余
THE END