简介:本文将介绍如何使用Python获取公网IP地址,并将该信息通过QQ邮箱发送给指定接收者。
获取公网IP地址可以使用Python的第三方库requests和ipify。首先,需要安装这两个库,可以使用以下命令:
pip install requests ipify
接下来,可以使用以下代码获取公网IP地址:
import requestsimport ipify# 获取公网IP地址public_ip = ipify.get_public_ip()print(public_ip)
获取到公网IP地址后,可以使用Python的smtplib和email库将该信息发送到QQ邮箱。首先,需要安装这两个库,可以使用以下命令:
pip install smtplib email
接下来,可以使用以下代码将公网IP地址发送到QQ邮箱:
```python
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import os
sender_email = ‘your_email@qq.com’
sender_password = ‘your_email_password’
receiver_email = ‘recipient_email@qq.com’
cc_email = ‘cc_email@qq.com’ # 可选
subject = ‘公网IP地址’
content = f’您的公网IP地址是:{public_ip}’
recipients = [receiver_email]
ccs = [cc_email] if cc_email else [] # 如果有抄送者,则添加抄送者邮箱地址
smtp_server = ‘smtp.qq.com’
smtp_port = 587 # 使用SSL加密时,端口号为465或994;使用TLS加密时,端口号为587或465。这里使用TLS加密。
auth_code = ‘your_auth_code’ # 使用授权码登录QQ邮箱,在QQ邮箱设置中生成授权码。
smtp_obj = smtplib.SMTP(smtp_server, smtp_port)
smtp_obj.starttls() # 使用TLS加密连接SMTP服务器和端口号。
smtp_obj.login(sender_email, sender_password) # 使用授权码登录发件人电子邮箱账号。
msg = MIMEText(content, ‘plain’, ‘utf-8’) # 设置邮件正文内容为纯文本格式,编码方式为UTF-8。
msg[‘Subject’] = Header(subject, ‘utf-8’) # 设置邮件主题。这里使用utf-8编码方式。
msg[‘From’] = Header(sender_email, ‘utf-8’) # 设置发件人电子邮箱账号。这里使用utf-8编码方式。
msg[‘To’] = ‘, ‘.join(recipients) # 设置收件人电子邮箱账号。这里使用逗号分隔多个收件人电子邮箱账号。如果需要添加抄送者,则将抄送者电子邮箱账号添加到msg[‘To’]中。这里使用utf-8编码方式。
if ccs: # 如果需要添加抄送者,则将抄送者电子邮箱账号添加到msg[‘Cc’]中。这里使用utf-8编码方式。
msg[‘Cc’] = ‘, ‘.join(ccs) # 设置抄送者电子邮箱账号。这里使用逗号分隔多个抄送者电子邮箱账号。
smtp_obj.sendmail(sender_email, msg[‘To’].encode(), msg.as_string()) # 发送邮件到收件人电子邮箱账号和抄送者电子邮箱账号(如果有)。这里需要将msg[‘To’]和msg[‘Cc’]中的字符串编码为字节流,才能通过SMTP协议发送邮件。如果需要添加抄送者,则将抄送者电子邮箱账号添加到smtp_obj