国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

linux shell發送Email郵件的方法詳解

2020-07-27 18:58:23
字體:
來源:轉載
供稿:網友

一封最簡單的郵件

echo -e "To: handy1989@qq.com/nCC: handy1989@qq.com/nFrom: handy<handy@test.com>/nSubject: test/n/nhello world" | sendmail -t

看上去有點復雜,其實就是sendmail程序從標準輸入讀取郵件源碼,-t參數表示從郵件源碼提取收件人信息,然后發送到收件人的郵件服務器,我們稍做整理,將郵件源碼保存在email.txt中如下

To: handy1989@qq.comCC: handy1989@qq.comFrom: handy<handy@test.com>Subject: testhello world

將以上命令改為cat email.txt | sendmail -t,這樣就一目了然了。收到的郵件信息如下

郵件的格式

從前面的郵件源碼可以看到,郵件是和http類似的文本協議,由郵件頭和郵件內容兩部分組成,中間以空行分隔,郵件頭每行對應一個字段,和http頭類似,比如這里的To,CC,From,Subject,分別代表收件人,抄送人,發件人,標題,如果有多個收件人或抄送人,用逗號分隔,郵件內容才是我們在郵件客戶端真正看到的東西

郵件客戶端都可以查看郵件源碼,比如下面就是我收到的一封郵件的源碼


郵件標題使用中文

如果郵件標題直接使用中文字符會導致收到的郵件亂碼,為了避免這種情況,應該對中文進行base64編碼,而這也是郵件最常用的編碼方式,當然,在進行base64編碼之前先得對中文字符進行編碼(UTF-8或GBK等等),這和html的編碼是一樣的概念,采用UTF-8和base64編碼的格式如下

=?UTF-8?B?xxxxxx?=

其中xxxxxx為編碼后的數據,用python可以快速對中文進行編碼,比如對中文'測試'先進行utf-8編碼再進行base64編碼結果為

>>> import base64>>> base64.standard_b64encode(u'測試'.encode('utf-8'))'5rWL6K+V'

在From和Subject中使用中文,郵件源碼如下

To: handy1989@qq.comCC: handy1989@qq.comFrom: =?UTF-8?B?5rWL6K+V?=<handy@test.com>Subject: =?UTF-8?B?5rWL6K+V?=hello world

這里將發件人的名字和郵件標題都改為了'測試',收到的郵件效果為

郵件內容使用html

如果郵件內容是html代碼,則需要在郵件頭添加Content-type字段來標記文本類型,同時還需要標記郵件內容的字符編碼,以下郵件源碼發送的正是html內容

To: handy1989@qq.comCC: handy1989@qq.comFrom: =?UTF-8?B?5rWL6K+V?=<handy@test.com>Subject: =?UTF-8?B?5rWL6K+V?=Content-type: text/html;charset=utf-8<h1>hello world</h1>

收到的郵件效果為

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 呼伦贝尔市| 瓦房店市| 徐水县| 巴马| 册亨县| 遵义县| 金阳县| 祁连县| 绿春县| 吴旗县| 大安市| 崇阳县| 荔波县| 定兴县| 乌鲁木齐县| 客服| 罗平县| 海口市| 丽江市| 烟台市| 长岭县| 宁晋县| 瓦房店市| 万宁市| 温泉县| 鄄城县| 乌拉特后旗| 绍兴县| 随州市| 永福县| 高台县| 抚顺县| 南华县| 邻水| 昭觉县| 东方市| 扶风县| 阜南县| 灵山县| 思南县| 潮安县|