用Python的smtpl b模块轻松实现邮件发送功能
夏志豪 2023-07-12编程经验
介绍smtplib模块Python的smtplib模块提供了一种简单的方式来发送电子邮件。smtplib模块可以轻松地通过SMTP(简单邮件传输协议)发送邮件。这个模块允许程序员通过电子邮件发送通知、报告、日志信息等。如果你需要在P
介绍smtplib模块
Python的smtplib模块提供了一种简单的方式来发送电子邮件。smtplib模块可以轻松地通过SMTP(简单邮件传输协议)发送邮件。这个模块允许程序员通过电子邮件发送通知、报告、日志信息等。如果你需要在Python应用程序中发送电子邮件,则可以使用smtplib模块。
连接到邮件服务器
连接到邮件服务器是发送电子邮件的第一步。smtplib模块中的SMTP类提供了连接到邮件服务器的方法。下面的代码展示了如何连接到一个电子邮件服务器,连接成功后会向用户展示服务器响应的消息。
import smtplib # 创建SMTP对象 smtpObj = smtplib.SMTP('smtp.gmail.com', 587) # 打印与服务器的握手信息 print(smtpObj.ehlo())
发送简单电子邮件
连接成功后,我们可以使用SMTP()方法向收件人发送简单的电子邮件。以下代码演示了如何向收件人发送一个简单的电子邮件。
import smtplib sender_email = "rashid@example.com" password = "mypassword" receiver_email = "jenny@example.com" message = "This is a test email." try: smtpObj = smtplib.SMTP('smtp.gmail.com', 587) smtpObj.ehlo() smtpObj.starttls() smtpObj.login(sender_email, password) smtpObj.sendmail(sender_email, receiver_email, message) print("Successfully sent email!") except Exception as ex: print("Error: unable to send email:", ex)
发送包含附件的电子邮件
我们可以使用Python的email模块和smtplib模块一起,来发送包含附件的复杂电子邮件。下面的代码演示了如何向收件人发送一个包含附件的电子邮件。
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage sender_email = "rashid@example.com" password = "mypassword" receiver_email = "jenny@example.com" # 创建一个多部分消息对象 message = MIMEMultipart() message['From'] = sender_email message['To'] = receiver_email message['Subject'] = 'Python SMTP - Sending Email with Attachment' # 添加文本部分 message.attach(MIMEText("This is a test email with attachment.")) # 添加图像部分 with open("test.jpg", "rb") as f: img_data = f.read() image = MIMEImage(img_data, name="test.jpg") message.attach(image) # 发送电子邮件 try: smtpObj = smtplib.SMTP('smtp.gmail.com', 587) smtpObj.ehlo() smtpObj.starttls() smtpObj.login(sender_email, password) smtpObj.sendmail(sender_email, receiver_email, message.as_string()) print("Successfully sent email!") except Exception as ex: print("Error: unable to send email:", ex)
很赞哦! ()