当前位置: 首页 > ai >正文

SMTP发送邮件

用笔记本电脑,通过访问阿里云服务器的端口(穿透)登录到树莓派系统

在这里插入图片描述

在虚拟机编写一个守护进程程序,每隔一分钟,利用SMTP协议向你的某个邮箱发送一份内容为 “守护进程正在运行中…”的邮件

在这里插入图片描述

import smtplib
import time
import os
import sys
import logging
from email.mime.text import MIMEText# 配置日志
logging.basicConfig(filename='/tmp/daemon.log', level=logging.INFO)def daemonize():try:pid = os.fork()if pid > 0:sys.exit(0)os.setsid()pid = os.fork()if pid > 0:sys.exit(0)os.chdir('/')sys.stdout.flush()sys.stderr.flush()with open(os.devnull, 'r') as si, open(os.devnull, 'a+') as so, open(os.devnull, 'a+') as se:os.dup2(si.fileno(), sys.stdin.fileno())os.dup2(so.fileno(), sys.stdout.fileno())os.dup2(se.fileno(), sys.stderr.fileno())except Exception as e:logging.error(f"Daemonize failed: {e}")sys.exit(1)def send_email():smtp_server = 'smtp.gmail.com'  # 替换为真实服务器port = 587sender = 'your_email@gmail.com'  # 替换为真实邮箱password = 'your_app_password'   # 应用专用密码receiver = 'receiver@example.com'msg = MIMEText('Daemon test email sent every minute.')msg['Subject'] = 'Daemon Test'msg['From'] = sendermsg['To'] = receivertry:with smtplib.SMTP(smtp_server, port) as server:server.starttls()server.login(sender, password)server.send_message(msg)logging.info("Email sent successfully")except Exception as e:logging.error(f"Email error: {e}")def main():daemonize()logging.info("Daemon started")while True:send_email()time.sleep(60)if __name__ == "__main__":main()
http://www.xdnf.cn/news/735.html

相关文章:

  • 【C++单调栈向量】3288最长上升路径的长度|2449
  • 2025-4-20-C++ 学习 数组(1)
  • 【洛谷】P3156 【深基15.例1】询问学号 的题解
  • Agent安装-Beszel​​ 轻量级服务器监控平台
  • Milvus(1):什么是 Milvus
  • 【ROS】航点导航功能
  • 八大排序之希尔排序
  • leetcode 718. Maximum Length of Repeated Subarray
  • 【matlab|python】矢量棍棒图应用场景和代码
  • Redis——通信协议
  • 第35讲:构建属于自己的遥感大模型平台,并接入地理数据工作流
  • Ubuntu修改Swap交换空间大小
  • 深入浅出 C++ 核心基础:从语法特性到入门体系构建
  • C语言if
  • 大模型之路(day 1)
  • 嵌入式学习——远程终端登录和桌面访问
  • Java Web项目(一)
  • Mysql相关知识2:Mysql隔离级别、MVCC、锁
  • 深度可分离卷积与普通卷积的区别及原理
  • 【C++】继承----上篇
  • mysql
  • QSS【QT】
  • 常见超低噪声 LDO,ADM7150、LP5907、SGN2036、TPL910
  • 力扣刷题 - 203.移除链表元素
  • 4.20刷题记录(单调栈)
  • 基于springboot的商城
  • 积木报表查询出现jdbc.SQLServerException: 对象名 ‘user_tab_comment 的解决方法
  • 力扣算法ing(61 / 100)
  • 5.1 掌握函数定义与参数传递的奥秘
  • 【Qt】信号和槽