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

首頁 > 系統 > Linux > 正文

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

2019-10-26 18:50:24
字體:
來源:轉載
供稿:網友

一封最簡單的郵件

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>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博罗县| 台安县| 尚志市| 富裕县| 阿拉善左旗| 辉南县| 桂阳县| 绥芬河市| 靖边县| 梁河县| 陆河县| 上犹县| 宣威市| 玉田县| 平江县| 凉山| 凤庆县| 玉环县| 谷城县| 拜城县| 涿州市| 乐昌市| 宜都市| 宁乡县| 芜湖县| 宜兰县| 永州市| 青浦区| 临汾市| 韶关市| 邻水| 天全县| 廉江市| 全南县| 竹山县| 微山县| 益阳市| 普定县| 准格尔旗| 清丰县| 霍山县|