您的位置:

Python发送SMTP邮件的完整代码示例

一、SMTP是什么?

SMTP(Simple Mail Transfer Protocol)是用于电子邮件的标准协议,SMTP是一个客户端服务器协议,用于从发送邮件的用户向邮件服务器或转发器传输邮件,然后转发邮件到接收邮件的邮件服务器。我们使用Python编写代码向其他人发送电子邮件时,需要使用SMTP协议。

二、Python中发送邮件的过程

要使用Python发送电子邮件,必须要连接到SMTP服务器。Python类库中提供了两个模块来使用SMTP:smtplib和email。smtplib模块提供了许多方法来连接到和使用SMTP服务器,而email模块用于设置邮件格式并发送邮件。在Python中,使用smtplib和email可以轻松地发送邮件。

使用smtplib连接SMTP服务器可以分为以下几个步骤:

1. 导入smtplib模块

    import smtplib
2. 连接SMTP服务器
    smtpObj = smtplib.SMTP('smtp.mailserver.com', 587)
    smtpObj.starttls()  # 开启TLS加密传输
3. 登录SMTP服务器
    smtpObj.login('sender@example.com', 'password')
4. 发送邮件
    smtpObj.sendmail(sender, receivers, message.as_string())
5. 关闭SMTP服务器连接
    smtpObj.quit()

三、Python代码示例

下面是一个完整的Python发送SMTP邮件的代码示例,其中包括如何设置邮件主题、发送多个收件人、添加附件、HTML邮件等。

首先,需要导入smtplib和email模块。在下面的示例中,需要设置邮箱账户、密码和收件人列表。然后,将邮件主题、正文和附件添加到消息中。最后,使用SMTP连接发送电子邮件。

    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.base import MIMEBase
    from email import encoders
    
    # 邮件账户信息
    sender = "sender@example.com"
    password = "password"
    receivers = ["receiver1@example.com", "receiver2@example.com"]
    
    # 创建一个MIMEMultipart消息,并设置其内容
    message = MIMEMultipart()
    message['From'] = sender
    message['To'] = ", ".join(receivers)
    message['Subject'] = "Python SMTP邮件测试"
    
    # 邮件正文
    message_text = "

HTML邮件测试

这是一封Python发送的HTML邮件。

" message.attach(MIMEText(message_text, 'html')) # 添加附件 filename = "test.jpg" attachment = open("test.jpg", "rb") file = MIMEBase('application', 'octet-stream') file.set_payload(attachment.read()) encoders.encode_base64(file) file.add_header('Content-Disposition', 'attachment', filename=filename) message.attach(file) # 连接SMTP服务器并发送邮件 smtpObj = smtplib.SMTP('smtp.mailserver.com', 587) smtpObj.starttls() smtpObj.login(sender, password) smtpObj.sendmail(sender, receivers, message.as_string()) smtpObj.quit()

四、总结

Python是一种功能强大的编程语言,它在发送电子邮件方面有很大的优势。使用Python发送SMTP邮件非常简单,并且可以通过使用email模块灵活地控制电子邮件的格式和内容。Python可以用于构建各种各样的应用程序,包括发送,接收和处理电子邮件。

因此,如果想要进一步了解和掌握Python编程语言,请尝试使用它来发送电子邮件。这将为您提供一个绝佳的机会,熟悉Python的SMTP模块,了解email模块,并扩展Python编程技能。