本文概述
- 从gmail发送电子邮件
- 在电子邮件中发送HTML
Python提供了smtplib模块, 该模块定义了一个SMTP客户端会话对象, 该对象用于将电子邮件发送到Internet机器。为此, 我们必须使用import语句导入smtplib模块。
$ import smtplib
SMTP对象用于电子邮件传输。以下语法用于创建smtplib对象。
import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname)
它接受以下参数。
- host:这是运行SMTP服务器的计算机的主机名。在这里, 我们可以指定服务器的IP地址, 例如(https://www.srcmini.com)或localhost。它是一个可选参数。
- 端口:这是主机正在侦听SMTP连接的端口号。默认为25。
- local_hostname:如果SMTP服务器在本地计算机上运行, ??我们可以提及本地计算机的主机名。
smtpObj.sendmail(sender, receiver, message)
例子
#!/usr/bin/python3import smtplibsender_mail = 'sender@fromdomain.com'receivers_mail = ['reciever@todomain.com']message = """From: From Person %sTo: To Person %sSubject: 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。
【Python使用SMTP发送电子邮件示例】使用以下语法。
$ smtpObj = smtplib.SMTP("gmail.com", 587)
在这里, 我们需要使用gmail用户名和密码登录gmail帐户。为此, smtplib提供了login()方法, 该方法接受发送者的用户名和密码。
考虑以下示例。
例子
#!/usr/bin/python3import smtplibsender_mail = 'sender@gmail.com'receivers_mail = ['reciever@gmail.com']message = """From: From Person %sTo: To Person %sSubject: 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/python3import smtplibsender_mail = 'sender@fromdomain.com'receivers_mail = ['reciever@todomain.com']message = """From: From Person %sTo: To Person %sMIME-Version:1.0Content-type:text/htmlSubject: 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")
推荐阅读
- Python sys模块用法
- Python如何读取Excel文件(详细内容在这里…)
- LeetCode 689. Maximum Sum of 3 Non-Overlapping Subarrays
- android开发小记
- APP页面如何区分是原生的还是H5页面
- Appium之UIAutomator API选择元素
- 手机号码生成器app,手机上用的
- Android: SharedPreferences的简单使用(数据可持久化)
- Elasticsearch系列---初识mapping