欢迎访问宙启技术站
智能推送

send_mail()函数的使用方法及示例(Python发送邮件教程)

发布时间:2024-01-10 10:20:59

send_mail()函数是一个用于Python发送邮件的方法。它可以在Python程序中调用,并通过SMTP(Simple Mail Transfer Protocol)协议将邮件发送到指定的邮箱。

下面是send_mail()函数的使用方法及示例:

1. 导入相关的模块和库:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

2. 定义send_mail()函数:

def send_mail(from_addr, password, to_addr, subject, content):
    # 创建一个MIMEText对象,将邮件内容添加到其中
    message = MIMEText(content, 'plain', 'utf-8')
    # 设置发件人、收件人和主题
    message['From'] = Header(from_addr)
    message['To'] = Header(to_addr)
    message['Subject'] = Header(subject)
    
    try:
        # 创建SMTP对象,并登录发件人邮箱
        smtpObj = smtplib.SMTP()
        smtpObj.connect('smtp.qq.com', 25)
        smtpObj.login(from_addr, password)
        # 发送邮件
        smtpObj.sendmail(from_addr, [to_addr], message.as_string())
        print("邮件发送成功")
    except smtplib.SMTPException:
        print("Error: 无法发送邮件")

3. 调用send_mail()函数发送邮件:

if __name__ == '__main__':
    from_addr = 'your_email@qq.com'  # 发件人邮箱地址
    password = 'your_password'  # 发件人邮箱密码或授权码
    to_addr = 'recipient_email@example.com'  # 收件人邮箱地址
    subject = '测试邮件'  # 邮件主题
    content = '这是一封测试邮件'  # 邮件内容
    
    send_mail(from_addr, password, to_addr, subject, content)

在以上示例中,我们首先导入了需要的模块和库,然后定义了一个名为send_mail()的函数。该函数接收5个参数:发件人邮箱地址、发件人邮箱密码或授权码、收件人邮箱地址、邮件主题和邮件内容。

在send_mail()函数内部,我们首先创建了一个MIMEText对象,用于存储邮件内容。然后设置了发件人、收件人和主题等相关信息。接着创建一个SMTP对象,并使用connect()方法连接到SMTP服务器,并使用login()方法登录发件人邮箱。

最后,我们使用sendmail()方法发送邮件,并将邮件内容转换为字符串,使用as_string()方法将MIMEText对象转换为字符串形式。如果邮件发送成功,则输出"邮件发送成功",否则输出"Error: 无法发送邮件"。

要发送邮件,我们需要将自己的发件人邮箱地址、密码或授权码、收件人邮箱地址、邮件主题和内容等信息填入相应的位置,然后调用send_mail()函数即可。

注意:在示例中,我们使用的是QQ邮箱作为发件邮箱,SMTP服务器地址为'smtp.qq.com',端口为25,如果你使用其他邮箱,请根据对应的SMTP服务器和端口进行修改。

以上就是send_mail()函数的使用方法及示例,希望对你有所帮助。