如何用Python脚本自动发送邮件?

目录

1. 基础知识

1.1. SSH(Secure Shell)协议

1.2. SMTP(Simple Mail Transfer Protocol)协议

1.3. SSH协议与SMTP协议之间的关系

2. QQ邮箱设置

2.1. 开启SMTP服务

2.2. 编写脚本

3. 测试成功


1. 基础知识

      邮件的发送过程中会用到SSH和SMTP协议。SSH(Secure Shell)协议和SMTP(Simple Mail Transfer Protocol)协议是两种不同的网络协议,它们在网络通信中扮演着不同的角色。下面是对两者的简要介绍以及它们之间的关系:

1.1. SSH(Secure Shell)协议

      SSH是一种网络协议,用于加密方式远程登录和操作计算机系统。SSH提供了一种安全的方法,通过不安全的网络环境对服务器进行访问和管理。SSH协议常用于远程命令执行、文件传输等,它通过端口22进行通信。

1.2. SMTP(Simple Mail Transfer Protocol)协议

      SMTP是一种用于发送电子邮件的协议。它定义了邮件服务器之间如何互相发送和接收邮件的规则。SMTP通常只用于发送邮件,而接收邮件则使用POP3(Post Office Protocol version 3)或IMAP(Internet Message Access Protocol)。SMTP通常使用端口25、587或465(加密时)。

1.3. SSH协议与SMTP协议之间的关系

     SSH和SMTP协议在功能上没有直接的关系,它们分别用于不同的目的。SSH用于安全的远程管理,而SMTP用于邮件传输。不过,SSH可以与SMTP协议结合使用,提供一些额外的安全性。例如:

     1)SSH隧道(Tunneling):可以通过SSH隧道将SMTP流量加密,从而在不安全的网络中安全地发送电子邮件。这种方式可以防止中间人攻击和邮件内容泄露。

     2)SSH端口转发:可以使用SSH的端口转发功能将本地端口映射到远程的SMTP服务器上的端口,从而通过SSH连接来发送邮件,增加了传输过程的安全性。

     3)在使用SSH连接到远程服务器后,可以在该服务器上配置和管理SMTP服务,比如安装邮件服务器软件、配置邮件路由规则等。

2. QQ邮箱设置

2.1. 开启SMTP服务

    进入qq邮箱主页,选择设置 - 账号 - 开启服务(需要绑定的手机验证) - 获取授权码

2.2. 编写脚本

帮助系统如何设置POP3/SMTP的SSL加密方式?帮助系统

实验目的:利用qq邮箱给126邮箱发送邮件;

需要信息

1)2.1章节开启SMTP服务的qq邮箱更新到下面;

2)接收人的邮箱;

3)授权码;

更新脚本:将上面信息更新到下面脚本即可实现邮件发送;

import smtplib

from email.mime.text import MIMEText

from email.header import Header



# QQ邮箱SMTP服务器地址

smtp_server = 'smtp.qq.com'

# 你的QQ邮箱地址

sender_qq_mail = 'xxxxxxxxx@qq.com'

# 收件人邮箱地址

receiver_email = ['xxxxxxxxx@126.com']

# QQ邮箱的SMTP授权码

smtp_password = 'xxxxxxxxx'

# 邮件标题

subject = '测试邮件'

# 邮件正文

content = '这是一封测试邮件,发送自Python脚本。'



# 创建一个MIMEText对象,参数分别是邮件正文、文本格式、编码

message = MIMEText(content, 'plain', 'utf-8')

# 设置邮件的发送者

message['From'] = 'Give<xxxxxxxxx@qq.com>' #Header(sender_qq_mail, 'utf-8')

# 设置邮件的接收者

message['To'] = 'Give<xxxxxxxxx@126.com>' #Header(receiver_email, 'utf-8')

# 设置邮件标题

message['Subject'] = Header(subject, 'utf-8')



try:

    # 创建SMTP对象

    server = smtplib.SMTP_SSL(smtp_server, 465)

    # 设置调试级别,可以看到详细的发送日志

    server.set_debuglevel(1)

    # 登录QQ邮箱服务器

    server.login(sender_qq_mail, smtp_password)

    # 发送邮件

    server.sendmail(sender_qq_mail, [receiver_email], message.as_string())

    print('邮件发送成功')

except smtplib.SMTPException as e:

    print('邮件发送失败', e)

finally:

    # 退出SMTP服务器

    server.quit()

3. 测试成功

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值