Shell Python 发送邮件

目标

教会一位刚入行的小白如何使用 Shell Python 发送邮件,并提供一个详细的步骤指南。

准备工作

在开始之前,我们需要确保已经安装了以下软件和库:

  • Python 3.x
  • SMTP Email 库(smtplib
  • MIME 库(email.mime.text

整体流程

下面是发送邮件的整体流程,可以用表格形式展示步骤。

步骤 描述
1 导入所需的库
2 配置邮件服务器和端口
3 创建邮件对象
4 设置邮件内容
5 发送邮件

详细步骤

步骤 1:导入所需的库

首先,我们需要导入 smtplibemail.mime.text 这两个库。这些库提供了发送邮件所需要的功能。

import smtplib
from email.mime.text import MIMEText

步骤 2:配置邮件服务器和端口

接下来,我们需要配置邮件服务器和端口。这里我们使用的是 Gmail 的 SMTP 服务器,端口为 587。你也可以根据自己的需求选择其他邮件服务器。

smtp_server = 'smtp.gmail.com'
smtp_port = 587

步骤 3:创建邮件对象

然后,我们需要创建一个邮件对象,并设置发送方、接收方和邮件主题。

message = MIMEText('邮件正文内容')
message['From'] = 'sender@example.com'
message['To'] = 'recipient@example.com'
message['Subject'] = '邮件主题'

步骤 4:设置邮件内容

接下来,我们需要设置邮件的内容。这里我们只发送了简单的文本邮件,你也可以根据需要设置 HTML 格式的邮件或者添加附件。

message.attach(MIMEText('邮件正文内容', 'plain'))

步骤 5:发送邮件

最后,我们使用 SMTP 服务器发送邮件。我们需要提供发送方邮箱、密码以及目标邮箱。

smtp_username = 'sender@example.com'
smtp_password = 'password'
smtp = smtplib.SMTP(smtp_server, smtp_port)
smtp.starttls()
smtp.login(smtp_username, smtp_password)
smtp.sendmail(message['From'], message['To'], message.as_string())
smtp.quit()

代码解释

下面是每条代码的注释和解释:

import smtplib
from email.mime.text import MIMEText

smtp_server = 'smtp.gmail.com'
smtp_port = 587

# 创建邮件对象
message = MIMEText('邮件正文内容')
message['From'] = 'sender@example.com'
message['To'] = 'recipient@example.com'
message['Subject'] = '邮件主题'

# 设置邮件内容
message.attach(MIMEText('邮件正文内容', 'plain'))

# 发送邮件
smtp_username = 'sender@example.com'
smtp_password = 'password'
smtp = smtplib.SMTP(smtp_server, smtp_port)
smtp.starttls()
smtp.login(smtp_username, smtp_password)
smtp.sendmail(message['From'], message['To'], message.as_string())
smtp.quit()

关系图

使用 mermaid 语法绘制关系图如下:

erDiagram
    USER ||--o MESSAGE : 发送

类图

使用 mermaid 语法绘制类图如下:

classDiagram
    class USER {
        -email
        -password
        +sendEmail()
    }
    class MESSAGE {
        -from
        -to
        -subject
        -content
    }

    USER --> MESSAGE

以上是使用 Shell Python 发送邮件的详细步骤和代码解释。希望这篇文章对刚入行的小白有所帮助。如有任何问题,请随时提问。