个性化阅读
专注于IT技术分析

Python使用SMTP发送电子邮件示例

本文概述

发送邮件传输协议(SMTP)用作使用python处理电子邮件传输的协议。它用于在电子邮件服务器之间路由电子邮件。

Python提供了smtplib模块, 该模块定义了一个SMTP客户端会话对象, 该对象用于将电子邮件发送到Internet机器。为此, 我们必须使用import语句导入smtplib模块。

$ import smtplib

SMTP对象用于电子邮件传输。以下语法用于创建smtplib对象。

import smtplib 
smtpObj = smtplib.SMTP(host, port, local_hostname)

它接受以下参数。

  • host:这是运行SMTP服务器的计算机的主机名。在这里, 我们可以指定服务器的IP地址, 例如(https://www.srcmini02.com)或localhost。它是一个可选参数。
  • 端口:这是主机正在侦听SMTP连接的端口号。默认为25。
  • local_hostname:如果SMTP服务器在本地计算机上运行, ​​我们可以提及本地计算机的主机名。

SMTP对象的sendmail()方法用于将邮件发送到所需的计算机。语法在下面给出。

smtpObj.sendmail(sender, receiver, message)

例子

#!/usr/bin/python3
import smtplib
sender_mail = 'sender@fromdomain.com'
receivers_mail = ['reciever@todomain.com']
message = """From: From Person %s
To: To Person %s
Subject: Sending SMTP e-mail 
This is a test e-mail message.
"""%(sender_mail, receivers_mail)
try:
   smtpObj = smtplib.SMTP('localhost')
   smtpObj.sendmail(sender_mail, receivers_mail, message)
   print("Successfully sent email")
except Exception:
   print("Error: unable to send email")

从gmail发送电子邮件

在某些情况下, 电子邮件是使用gmail SMTP服务器发送的。在这种情况下, 我们可以将gmail作为SMTP服务器传递, 而不是通过端口587使用localhost。

使用以下语法。

$ smtpObj = smtplib.SMTP("gmail.com", 587)

在这里, 我们需要使用gmail用户名和密码登录gmail帐户。为此, smtplib提供了login()方法, 该方法接受发送者的用户名和密码。

考虑以下示例。

例子

#!/usr/bin/python3
import smtplib
sender_mail = 'sender@gmail.com'
receivers_mail = ['reciever@gmail.com']
message = """From: From Person %s
To: To Person %s
Subject: Sending SMTP e-mail 
This is a test e-mail message.
"""%(sender_mail, receivers_mail)
try:
   password = input('Enter the password');
   smtpObj = smtplib.SMTP('gmail.com', 587)
   smtpobj.login(sender_mail, password)
   smtpObj.sendmail(sender_mail, receivers_mail, message)
   print("Successfully sent email")
except Exception:
   print("Error: unable to send email")

在电子邮件中发送HTML

我们可以通过指定发送HTML的MIME版本, 内容类型和字符集来格式化消息中的HTML。

考虑以下示例。

例子

#!/usr/bin/python3
import smtplib
sender_mail = 'sender@fromdomain.com'
receivers_mail = ['reciever@todomain.com']
message = """From: From Person %s
To: To Person %s

MIME-Version:1.0
Content-type:text/html


Subject: Sending SMTP e-mail 

<h3>Python SMTP</h3>
<strong>This is a test e-mail message.</strong>
"""%(sender_mail, receivers_mail)
try:
   smtpObj = smtplib.SMTP('localhost')
   smtpObj.sendmail(sender_mail, receivers_mail, message)
   print("Successfully sent email")
except Exception:
   print("Error: unable to send email")
赞(0)
未经允许不得转载:srcmini » Python使用SMTP发送电子邮件示例

评论 抢沙发

评论前必须登录!