Python基础之发送邮件

一、实现python发送邮件

参考:简单三步,用 Python 发邮件

1、发送测试:

import smtplib

from email.mime.text import MIMEText

#设置服务器所需信息

#163邮箱服务器地址

mail_host = ‘smtp.163.com’

#163用户名

mail_user = ‘159*02’

#密码(部分邮箱为授权码)

mail_pass = ‘7**x’

#邮件发送方邮箱地址

sender = '159*****02@163.com

#邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发

receivers = ['59*****02@qq.com‘]

#设置email信息

#邮件内容设置

message = MIMEText(‘content’,’plain’,’utf-8’)

#邮件主题

message[‘Subject’] = ‘title’

#发送方信息

message[‘From’] = sender

#接受方信息

message[‘To’] = receivers[0]

#登录并发送邮件

try:

smtpObj = smtplib.SMTP()

#连接到服务器

smtpObj.connect(mail_host,25)

#登录到服务器

smtpObj.login(mail_user,mail_pass)

#发送

smtpObj.sendmail(

sender,receivers,message.as_string())

#退出

smtpObj.quit()

print(‘success’)

except smtplib.SMTPException as e:

print(‘error’,e) #打印错误
测试结果:
用163信箱发公司信箱 #OK

用公司信箱发给自己 #NG,把 smtpObj.connect(mail_host,25) 换为 smtpObj = smtplib.SMTP_SSL(mail_host) 也不行
邮件设置中的POP3与IMAP有啥区别
简单说,POP3客户端不改变邮箱服务器的内容,而IMAP客户端会与邮箱服务器内容“同步”。
二、实现python自动发出路由器ip地址更新邮件
登录路由器 #Windows 10下,cmd或power shell下,ssh都无法登录路由器,git bash可以,为什么?

ip addr | mail @example.com # ip信息复杂混乱,路由器梅林固件提示 -sh mail : not found

curl ifconfig.co | mail @example.com #curl 获得外网ip

curl “https://yoursite.com:passwd@dyn.dns.he.net/nic/update?hostname=yoursite.com" #用 DDNS 服务动态更新 A 记录,没验证,这个功能狂赞啊!
有这样的程序吗?有动态公网 IP 的机器,一旦 IP 发生改变,就给设定好的邮箱发邮件告知最新的 IP?

三、python自动更新DNS中路由器ip地址解析