c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

用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)

文章评论