欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux shell發(fā)送Email郵件的方法詳解

 更新時間:2017年01月24日 09:49:56   作者:littlewhite  
這篇文章主要介紹了linux shell發(fā)送Email郵件的方法,文中介紹的內(nèi)容包括發(fā)送一封簡單的郵件、郵件的格式、郵件標題使用中文以及郵件內(nèi)容使用html等相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。

一封最簡單的郵件

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

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

To: handy1989@qq.com
CC: handy1989@qq.com
From: handy<handy@test.com>
Subject: test

hello world

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

郵件的格式

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

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


郵件標題使用中文

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

=?UTF-8?B?xxxxxx?=

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

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

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

To: handy1989@qq.com
CC: handy1989@qq.com
From: =?UTF-8?B?5rWL6K+V?=<handy@test.com>
Subject: =?UTF-8?B?5rWL6K+V?=

hello world

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

郵件內(nèi)容使用html

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

To: handy1989@qq.com
CC: handy1989@qq.com
From: =?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>

收到的郵件效果為

總結(jié)

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

相關(guān)文章

  • linux系統(tǒng)下用.sh文件執(zhí)行python命令的方法

    linux系統(tǒng)下用.sh文件執(zhí)行python命令的方法

    這篇文章主要給大家介紹了關(guān)于linux系統(tǒng)下用.sh文件執(zhí)行python命令的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-07-07
  • Shell腳本命令行批處理bash?sh?cmd?bat函數(shù)極簡學(xué)法

    Shell腳本命令行批處理bash?sh?cmd?bat函數(shù)極簡學(xué)法

    這篇文章主要為大家介紹了Shell腳本中文英文多語言國際化和命令行批處理(bash?sh?cmd?bat)中定義函數(shù)的簡單寫法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-09-09
  • Shell編程條件測試的實現(xiàn)

    Shell編程條件測試的實現(xiàn)

    Shell腳本的條件測試可以用于測試字符串、文件狀態(tài)和數(shù)字。本文就詳細的介紹一下Shell編程條件測試,具有一定的參考價值,感興趣的可以了解一下
    2021-11-11
  • linux 中g(shù)rep 匹配制表符 和 換行符的命令

    linux 中g(shù)rep 匹配制表符 和 換行符的命令

    這篇文章主要介紹了linux 中g(shù)rep 匹配制表符 和 換行符的命令,需要的朋友可以參考下
    2018-07-07
  • linux定時備份MySQL數(shù)據(jù)庫并刪除以前的備份文件(推薦)

    linux定時備份MySQL數(shù)據(jù)庫并刪除以前的備份文件(推薦)

    這篇文章主要介紹了linux定時備份MySQL數(shù)據(jù)庫并刪除以前的備份文件,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • shell腳本返回值問題的解決

    shell腳本返回值問題的解決

    這篇文章主要介紹了shell腳本返回值問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Linux磁盤管理之LVM詳解及l(fā)vm磁盤操作命令

    Linux磁盤管理之LVM詳解及l(fā)vm磁盤操作命令

    LVM,Logical Volume Manger,是linux內(nèi)核提供的一種邏輯卷管理功能,由內(nèi)核驅(qū)動和應(yīng)用層工具組成,它是在硬盤的分區(qū)基礎(chǔ)上,創(chuàng)建了一個邏輯層,可以非常靈活且非常方便的管理存儲設(shè)備,這篇文章主要介紹了Linux磁盤管理之LVM詳解及l(fā)vm磁盤操作命令,需要的朋友可以參考下
    2023-03-03
  • Shell expr命令進行整數(shù)計算的實現(xiàn)

    Shell expr命令進行整數(shù)計算的實現(xiàn)

    這篇文章主要介紹了Shell expr命令進行整數(shù)計算的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Shell腳本自動備份MySQL到FTP并定期清理過期備份

    Shell腳本自動備份MySQL到FTP并定期清理過期備份

    這篇文章主要介紹了Shell腳本自動備份MySQL到FTP并定期清理過期備份,本文中的腳本同時實現(xiàn)了定期清理舊備份數(shù)據(jù)的功能,這是一大特色,需要的朋友可以參考下
    2014-12-12
  • Linux 中 RPM包 安裝 查詢 卸載命令小結(jié)及yum命令詳解

    Linux 中 RPM包 安裝 查詢 卸載命令小結(jié)及yum命令詳解

    RPM 的全稱為Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下軟件包的軟件。Linux 安裝時,除了幾個核心模塊以外,其余幾乎所有的模塊均通過RPM 完成安裝。RPM 有五種操作模式,分別為:安裝、卸載、升級、查詢和驗證
    2015-11-11

最新評論