检测公网 ip 变化后发送邮箱(一)- Python 发送邮箱代码

736次阅读
没有评论

共计 1071 个字符,预计需要花费 3 分钟才能阅读完成。

家里的带宽申请了公网 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()

经过测试,上面的代码是可以完美运行的。需要注意的是,需要修改部分自己的配置。

检测公网 ip 变化后发送邮箱(一)- Python 发送邮箱代码

发送邮箱的代码搞定,接下来就是如果获取自己的公网 ip 了。

网上有很多能够返回公网 ip 的网址,不知道你是否知道自己如何简单实现?

检测公网 ip 变化后发送邮箱(一)- Python 发送邮箱代码

提醒:本文发布于518天前,文中所关联的信息可能已发生改变,请知悉!

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 
阿蛮君
版权声明:本站原创文章,由 阿蛮君 2022-09-23发表,共计1071字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务