親愛的讀者,我們已經(jīng)成功地發(fā)送了簡單的文本郵件。但在實(shí)際應(yīng)用中,我們可能還需要發(fā)送格式更加豐富的HTML郵件,或者包含附件的郵件。今天,我們就來探索如何使用Python來構(gòu)建并發(fā)送這樣的郵件。
HTML郵件可以讓你的郵件內(nèi)容更加豐富多彩,包含圖片、鏈接、樣式等。在Python中,我們同樣可以使用email模塊來構(gòu)建HTML郵件。
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# HTML郵件正文內(nèi)容
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>
"""
# 創(chuàng)建一個(gè)多部分郵件對象
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)
# (可選)添加圖片附件(這里僅為示例,實(shí)際發(fā)送時(shí)請確保圖片文件存在)
# 注意:由于示例中HTML中引用了圖片,我們需要在郵件中添加這個(gè)圖片作為附件,并使用cid引用
# 這里為了簡化,我們略過實(shí)際文件讀取和添加的過程,僅展示邏輯
# ... 添加圖片附件的代碼會涉及到打開文件、讀取內(nèi)容、創(chuàng)建MIMEImage對象,并設(shè)置Content-ID為"image1"
# 發(fā)送郵件(假設(shè)SMTP連接和登錄已經(jīng)完成)
# ... 使用smtplib發(fā)送msg對象,與之前的示例類似
注意:上面的代碼示例中,關(guān)于添加圖片附件的部分被省略了,因?yàn)樗婕暗轿募蘒/O操作和MIMEImage對象的使用,這可能會讓示例變得復(fù)雜。在實(shí)際應(yīng)用中,你需要讀取圖片文件,創(chuàng)建MIMEImage對象,并將其附加到郵件中,同時(shí)確保HTML中的<img>標(biāo)簽通過cid屬性正確引用該圖片。
發(fā)送帶附件的郵件與發(fā)送HTML郵件類似,但你需要?jiǎng)?chuàng)建一個(gè)多部分郵件(MIMEMultipart),并為每個(gè)部分(文本、HTML、附件等)設(shè)置不同的MIME類型。
from email.mime.base import MIMEBase
from email import encoders
# 假設(shè)我們要發(fā)送一個(gè)名為"example.txt"的文本文件作為附件
filename = 'example.txt'
# 讀取文件內(nèi)容并編碼為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)
# 現(xiàn)在,msg對象包含了文本(或HTML)和附件,你可以使用smtplib發(fā)送它
# ... 發(fā)送郵件的代碼與之前相同
恭喜你,現(xiàn)在你已經(jīng)掌握了使用Python發(fā)送文本郵件、HTML郵件以及帶附件郵件的技能!這些技能將幫助你在自動化任務(wù)、通知系統(tǒng)或任何需要郵件通信的應(yīng)用程序中大展拳腳。記得在實(shí)踐中不斷探索和嘗試,你會發(fā)現(xiàn)Python在郵件處理方面的更多可能性。
. HTML是一種標(biāo)記語言,它是由(C)解釋執(zhí)行的
A.不需要解釋
B.Windows
C.瀏覽器
D.標(biāo)記語言處理軟件
2.在HTML文檔中用于表示頁面標(biāo)題的標(biāo)記對是(D)
A. <head></head>
B. <header></header>
C. <caption> </caption>
D. <title></title>
3.在HTML文檔中用于表示表格的標(biāo)記對是(C)
A. <head></head>
B.<header></header>
C. <table></table>
D.<caption></caption>
4.在HTML文檔中使用的注釋符號是(C )。
A. //...
B. /* ....*/
C.<! --.......-->
D.以上都不是
5.為了標(biāo)識一個(gè)HTML文件,應(yīng)該使用的HTML標(biāo)記是(C )。
A. <p></p>
B. <head></head>
C. <html></html>
D.<form></form>
6.在下列的HTML中,最大的標(biāo)題是(D)
A. <h6>
B. <head>
C.<heading>
D.<h1>
7.在HTML中要定義一一個(gè)書簽,應(yīng)該使用的語句是(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. 如果要在表單中創(chuàng)建一個(gè)普通文本框,下列標(biāo)記中正確的是( A )。
A. <input type="text" >
B. <input type ="password" >
C. <input type="checkbox" >
D. <input type ="radio" >
9. 下列標(biāo)記中不屬于行內(nèi)元素的是( D)。
A. <em>
B. <font>
C. <input>
D. <div>
10.下列標(biāo)記中可以產(chǎn)生粗體字的HTML標(biāo)記是( C)。
A. <bold>
B. <bb>
C. <b>
D. <i>
11.在下列的HTML中,正確產(chǎn)生超鏈接的標(biāo)記是(B)。
A. <a url="http://www. sina. com. cn">新浪網(wǎng)</a>
B. <a href="http://www. sina. com. cn">新浪網(wǎng)</a>
C. <a>http://www. sina. com. cn</a>
D. <a name=" http://www. sina. com. cn" >新浪網(wǎng)</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.以下選項(xiàng)中,全部都是表格標(biāo)記的是( B )。
A. <table> <head><tfoot>
B. <table><tr><td>
C. <table><tr><tt>
D. <thead> <body><tr>
14.下列語句中,能產(chǎn)生帶有數(shù)字列表符號的列表標(biāo)記是(C)。
A. <ul>
B. <dl>
C. <ol>
D. <list>
15.在下列選項(xiàng)中,正確地產(chǎn)生文本區(qū)( textarea)的標(biāo)記是(A ) 。
A . <textarea>
B. <input type =”textarea" >
C. <input type =”textbox" >
D. <input type="text:">
計(jì)算機(jī)二級Web(3):HTML語言基礎(chǔ) (下)
計(jì)算機(jī)二級Web(3):HTML語言基礎(chǔ) (上)
*請認(rèn)真填寫需求信息,我們會在24小時(shí)內(nèi)與您取得聯(lián)系。