在本文中,我们将学习如何使用脚本来处理电子邮件。首先电子邮件程序下载,我们将学习电子邮件消息格式并使用该模块发送和接收电子邮件。然后,您将学习使用电子邮件包发送带有附件和 HTML 内容的电子邮件。最后,您将了解电子邮件的不同合同。
本章介绍以下内容。
1电子邮件信息格式
在本节中,我们将研究电子邮件的格式。电子邮件由 3 个主要部分组成,如下所示。
邮件中包含其他组件,例如主题行、电子邮件签名和附件。
下面是一个通过Gmail邮箱发送纯文本电子邮件的简单示例程序,我们可以学习如何编写电子邮件和发送短信。现在创建一个脚本,将其命名为 .py 并在其中添加以下代码。
import smtplibimport getpasshost_name = "smtp.gmail.com"port = 465sender = 'sender_emil_id'receiver = 'receiver_email_id'password = getpass.getpass()msg = """Subject: Test MailHello from Sender !!"""s = smtplib.SMTP_SSL(host_name, port)s.login(sender, password)s.sendmail(sender, receiver, msg)s.quit()print("Mail sent successfully")
如下所示运行脚本。
student@ubuntu:~/work/Chapter_11$ python3 write_email_message.py
输出如下。
Password:Mail sent successfully
内部示例程序使用的模块发送一封电子邮件。首先确保电子邮件是通过 Gmail 发送给发件人的。该变量保存发件人的电子邮件地址。在变量中可以直接输入密码,也可以在运行时使用模块提示输入密码。这里我们使用提示输入密码。这将创建一个变量 msg 来存储电子邮件的内容,首先强调电子邮件的主题,然后是要发送的消息的正文。之后在 login() 函数中传入 和 变量,之后在 () 函数中传入 , 和 msg 变量,这样就可以成功发送邮件了。
2添加 HTML 和多媒体内容
在本节中,我们将学习如何添加 HTML 内容以及如何将多媒体内容作为附件发送。此处使用的电子邮件包。
首先我们看看如何添加 HTML 内容。创建一个脚本,将其命名为 .py,然后在其中添加以下代码。
import osimport smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport getpasshost_name = 'smtp.gmail.com'port = 465sender = 'sender_emailid'password = getpass.getpass()receiver = 'receiver_emailid'text = MIMEMultipart()text['Subject'] = 'Test HTML Content'text['From'] = sendertext['To'] = receivermsg = """ Hello there,
Good day !!
Home
"""html_content = MIMEText(msg, "html")text.attach(html_content)s = smtplib.SMTP_SSL(host_name, port)print("Mail sent successfully !!")s.login(sender, password)s.sendmail(sender, receiver, text.as_string())s.quit()
如下所示运行脚本。
student@ubuntu:~/work/Chapter_11$ python3 add_html_content.py
输出如下。
Password:Mail sent successfully !!
在示例程序里面,Email 包用于发送包含 HTML 内容的消息。 msg 变量用于存储 HTML 内容。
现在让我们学习如何通过脚本添加附件和发送带有附件的电子邮件。创建一个脚本,将其命名为 .py,然后在其中添加以下代码。
import osimport smtplibfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagefrom email.mime.multipart import MIMEMultipartimport getpasshost_name = 'smtp.gmail.com'port = 465sender = 'sender_emailid'password = getpass.getpass()receiver = 'receiver_emailid'text = MIMEMultipart()text['Subject'] = 'Test Attachment'text['From'] = sendertext['To'] = receivertxt = MIMEText('Sending a sample image.')text.attach(txt)f_path = 'path_of_file'with open(f_path, 'rb') as f: img = MIMEImage(f.read())img.add_header('Content-Disposition', 'attachment', filename=os.path.basename(f_path))text.attach(img)s = smtplib.SMTP_SSL(host_name, port)print("Attachment sent successfully !!")s.login(sender, password)s.sendmail(sender, receiver, text.as_string())s.quit()
如下所示运行脚本。
student@ubuntu:~/work/Chapter_11$ python3 add_attachment.py
输出如下。
Password:Attachment sent successfully !!
在里面的示例程序中,首先给出了发件人和发件人的电子邮件ID。之后,给出作为附件发送的图像的文件路径。最后将图片作为附件发送给发件人。
3POP3 和 IMAP 服务器
在本节中,我们将学习如何通过 POP3 和 IMAP 服务器接收电子邮件。并提供模块用于通过脚本接收电子邮件。
3.1使用模块接收邮件
POP3 代表 Post 3 (Post3)。这个标准合同帮助我们接收从远程服务器发送到本地计算机的电子邮件。POP3 的主要优点是它允许电子邮件下载到本地计算机,因此可以离线阅读下载的电子邮件。
POP3 使用两个端口。
现在让我们看一些示例程序,从一个接收大量电子文本消息的示例程序开始。创建一个脚本,将其命名为 .py,然后在其中添加以下代码。
import poplibimport getpasspop3_server = 'pop.gmail.com'username = 'Emaild_address'password = getpass.getpass()email_obj = poplib.POP3_SSL(pop3_server)print(email_obj.getwelcome())email_obj.user(username)email_obj.pass_(password)email_stat = email_obj.stat()print("New arrived e-Mails are : %s (%s bytes)" % email_stat)
如下所示运行脚本。
student@ubuntu:~$ python3 number_of_emails.py
程序的输出是邮箱中相当数量的电子邮件。
里面的例子首先将通过 POP3 安全接收电子邮件的模块导出到 .之后,指定特定的电子邮件服务器和电子邮件证书,即用户名和密码。稍后从服务器输出响应消息,并将用户名和密码提供给 服务器。登录后程序会收到邮箱统计信息,并在终端输出多封电子邮件。
首先,我们编写了一个脚本来获取最新的电子邮件。创建一个脚本,将其命名为 .py,然后在其中添加以下代码。
import poplibimport getpasspop3_server = 'pop.gmail.com'username = 'Emaild_address'password = getpass.getpass()email_obj = poplib.POP3_SSL(pop3_server)print(email_obj.getwelcome())email_obj.user(username)email_obj.pass_(password)print("nLatest Mailn")latest_email = email_obj.retr(1)print(latest_email[1])
如下所示运行脚本。
student@ubuntu:~$ python3 latest_email.py
这将获取最近收到的电子邮件。
在前面的示例程序中电子邮件程序下载, 、 中的模块通过 POP3 安全地导出和接收电子邮件。程序给出指定的电子短信服务器、用户名和密码后,从服务器输出响应消息,将用户名和密码提供给服务器,然后从邮箱中获取最新的电子邮件。
然后,编写一个脚本来捕获所有电子邮件。创建一个 .py 并在其中添加以下代码。
import poplibimport getpasspop3_server = 'pop.gmail.com'username = 'Emaild_address'password = getpass.getpass()email_obj = poplib.POP3_SSL(pop3_server)print(email_obj.getwelcome())email_obj.user(username)email_obj.pass_(password)email_stat = email_obj.stat()NumofMsgs = email_stat[0]for i in range(NumofMsgs): for mail in email_obj.retr(i+1)[1]: print(mail)
如下所示运行脚本。
student@ubuntu:~$ python3 latest_email.py
这将获取邮箱中的所有电子邮件。
3.2使用模块接收邮件
IMAP 代表 (),它通过本地计算机访问远程服务器上的电子邮件。 IMAP 允许多个客户端同时访问服务器上用户的电子邮件。当用户需要在不同的客户端访问邮件时,更适合使用IMAP来完成这样的操作。
IMAP 使用两个端口。
现在让我们看一个使用模块的示例程序。创建一个脚本,将其命名为 .py,然后在其中添加以下代码。
import imaplibimport pprintimport getpassimap_server = 'imap.gmail.com'username = 'Emaild_address'password = getpass.getpass()imap_obj = imaplib.IMAP4_SSL(imap_server)imap_obj.login(username, password)imap_obj.select('Inbox')temp, data_obj = imap_obj.search(None, 'ALL')for data in data_obj[0].split(): temp, data_obj = imap_obj.fetch(data, '(RFC822)') print('Message: {0}n'.format(data)) pprint.pprint(data_obj[0][1]) breakimap_obj.close()
如下所示运行脚本。
student@ubuntu:~$ python3 imap_email.py
这将获取指定文件夹中的所有电子邮件。
在前面的示例程序中,首先导出了模块,可以通过IMAP安全地接收电子邮件。之后,指定e-SMS 服务器和e-mail 证书,即用户名和密码。此用户名和密码稍后会提供给 服务器。其中,使用 () 函数显示收件箱中的所有电子邮件。然后使用 for 循环将电子邮件消息一一显示。其中使用 () 函数来降低网格对象并将其写入数据流。最后,程序关闭连接。
4 总结
在本章中,我们学习了如何用脚本编写电子邮件,但还学习了可以使用脚本发送和接收电子邮件的模块。还学习了如何通过 POP3 和 IMAP 接收电子邮件。并提供模块,我们可以使用它们来完成相关操作。
在第 12 章中,我们将了解 SSH。
5 个问题
1。 POP3 和 IMAP 分别是什么?
2。哪些是 break 和 in for 循环?例如。
3。有哪些?
4。什么是负索引,为什么要使用负索引?
5。文件扩展名pyc和py有什么区别?
6。使用循环语句生成以下文本。
1010101 10101 101 1
本文摘自《系统管理员脚本编程手册》
1.从基础编程到中级编程,全面系统地介绍脚本在系统管理中的作用。
2.市场上很少有书籍将脚本引入系统管理。
3.本书附有辅助资源,可帮助读者学习并将所学知识应用到现实生活中。
随着时间的推移,它已经发展并扩展了与 IT 运营相关的功能。简单易学但功能强大的脚本库,用于解决实际问题并手动执行管理员的日常活动。本书旨在通过完成一系列项目,帮助读者掌握脚本在项目中的使用方式。
本书先介绍安装,并讲解编程的基本知识。之后,本书将重点剖析整个开发过程,从配置到规划再到构建不同的工具,包括 IT 管理员的日常活动(文本处理、正则表达式、文件归档和加密)、网络管理(套接字编程、电子邮件处理、使用 /SSH 和合同(如 SNMP/DHCP)远程控制设备、创建图形用户界面、网站处理(日志文件处理、SOAP 和 通信、网络抓取)和数据库管理(MySQL 和类似的数据库)数据管理、数据分析和报告)。在本书结束时,读者将能够使用功能齐全的工具来解决具有挑战性的现实世界任务。
读者将了解以下内容:
■了解如何安装和调试脚本;
■了解和编写用于手动测试和日常管理活动的脚本;
■学习如何编写用于文本处理、加密、解密和归档的脚本;
■处理 PDF、Excel、CSV 和文本文件并生成报告;
■ 为远程网络管理(包括处理电子邮件)编写脚本;
■使用图形用户界面创建交互式工具;
■处理日志文件,以及 SOAP 和 通信;
■自动化数据库管理并执行统计分析。