亲爱的读者,我们已经成功地发送了简单的文本邮件。但在实际应用中,我们可能还需要发送格式更加丰富的HTML邮件,或者包含附件的邮件。今天,我们就来探索如何使用Python来构建并发送这样的邮件。
HTML邮件可以让你的邮件内容更加丰富多彩,包含图片、链接、样式等。在Python中,我们同样可以使用email模块来构建HTML邮件。
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# HTML邮件正文内容
html_content = """
<html>
<head></head>
<body>
<h1>Hello, this is an HTML email from Python!</h1>
<p>Here's a <a href="https://www.python.org">link to Python's website</a>.</p>
<img src="cid:image1"> <!-- 注意:这里使用了cid引用,稍后我们将添加图片附件 -->
</body>
</html>
"""
# 创建一个多部分邮件对象
msg = MIMEMultipart('related')
msg['From'] = 'your_email@gmail.com'
msg['To'] = 'receiver_email@example.com'
msg['Subject'] = 'HTML Email with Python'
# 添加HTML邮件正文
msg_alternative = MIMEMultipart('alternative')
msg.attach(msg_alternative)
html_part = MIMEText(html_content, 'html', 'utf-8')
msg_alternative.attach(html_part)
# (可选)添加图片附件(这里仅为示例,实际发送时请确保图片文件存在)
# 注意:由于示例中HTML中引用了图片,我们需要在邮件中添加这个图片作为附件,并使用cid引用
# 这里为了简化,我们略过实际文件读取和添加的过程,仅展示逻辑
# ... 添加图片附件的代码会涉及到打开文件、读取内容、创建MIMEImage对象,并设置Content-ID为"image1"
# 发送邮件(假设SMTP连接和登录已经完成)
# ... 使用smtplib发送msg对象,与之前的示例类似
注意:上面的代码示例中,关于添加图片附件的部分被省略了,因为它涉及到文件I/O操作和MIMEImage对象的使用,这可能会让示例变得复杂。在实际应用中,你需要读取图片文件,创建MIMEImage对象,并将其附加到邮件中,同时确保HTML中的<img>标签通过cid属性正确引用该图片。
发送带附件的邮件与发送HTML邮件类似,但你需要创建一个多部分邮件(MIMEMultipart),并为每个部分(文本、HTML、附件等)设置不同的MIME类型。
from email.mime.base import MIMEBase
from email import encoders
# 假设我们要发送一个名为"example.txt"的文本文件作为附件
filename = 'example.txt'
# 读取文件内容并编码为base64
with open(filename, 'rb') as attachment:
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
# 添加文件头信息
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
# 将附件添加到邮件中
msg.attach(part)
# 现在,msg对象包含了文本(或HTML)和附件,你可以使用smtplib发送它
# ... 发送邮件的代码与之前相同
恭喜你,现在你已经掌握了使用Python发送文本邮件、HTML邮件以及带附件邮件的技能!这些技能将帮助你在自动化任务、通知系统或任何需要邮件通信的应用程序中大展拳脚。记得在实践中不断探索和尝试,你会发现Python在邮件处理方面的更多可能性。
. HTML是一种标记语言,它是由(C)解释执行的
A.不需要解释
B.Windows
C.浏览器
D.标记语言处理软件
2.在HTML文档中用于表示页面标题的标记对是(D)
A. <head></head>
B. <header></header>
C. <caption> </caption>
D. <title></title>
3.在HTML文档中用于表示表格的标记对是(C)
A. <head></head>
B.<header></header>
C. <table></table>
D.<caption></caption>
4.在HTML文档中使用的注释符号是(C )。
A. //...
B. /* ....*/
C.<! --.......-->
D.以上都不是
5.为了标识一个HTML文件,应该使用的HTML标记是(C )。
A. <p></p>
B. <head></head>
C. <html></html>
D.<form></form>
6.在下列的HTML中,最大的标题是(D)
A. <h6>
B. <head>
C.<heading>
D.<h1>
7.在HTML中要定义一一个书签,应该使用的语句是(B ) 。
A. <a href="#object_01">text</a>
B. <a name="object _01">text</a>
C. <a target="#object_01">text</a>
D. <a link="#object_ 01" >text</a>
8. 如果要在表单中创建一个普通文本框,下列标记中正确的是( A )。
A. <input type="text" >
B. <input type ="password" >
C. <input type="checkbox" >
D. <input type ="radio" >
9. 下列标记中不属于行内元素的是( D)。
A. <em>
B. <font>
C. <input>
D. <div>
10.下列标记中可以产生粗体字的HTML标记是( C)。
A. <bold>
B. <bb>
C. <b>
D. <i>
11.在下列的HTML中,正确产生超链接的标记是(B)。
A. <a url="http://www. sina. com. cn">新浪网</a>
B. <a href="http://www. sina. com. cn">新浪网</a>
C. <a>http://www. sina. com. cn</a>
D. <a name=" http://www. sina. com. cn" >新浪网</a>
12.以下语句中,正确制作电子邮件链接的是(C)。
A. <a href="xxx@ yyy">
B. <mail href="xxx@ yyy" >
C. <a href="mailto:xxx@ yyy">
D. <mail>xxx@ yyy</ mail>
13.以下选项中,全部都是表格标记的是( B )。
A. <table> <head><tfoot>
B. <table><tr><td>
C. <table><tr><tt>
D. <thead> <body><tr>
14.下列语句中,能产生带有数字列表符号的列表标记是(C)。
A. <ul>
B. <dl>
C. <ol>
D. <list>
15.在下列选项中,正确地产生文本区( textarea)的标记是(A ) 。
A . <textarea>
B. <input type =”textarea" >
C. <input type =”textbox" >
D. <input type="text:">
计算机二级Web(3):HTML语言基础 (下)
计算机二级Web(3):HTML语言基础 (上)
*请认真填写需求信息,我们会在24小时内与您取得联系。