Provided by:
manpages-zh_1.5.1-1_all 
NAME
msmtp - An SMTP client
n (SYNOPSIS)
發郵件模式 (預設):
msmtp [option...] [--] recipient...
msmtp [option...] -t [--] [recipient...]
伺服器消息模式:
msmtp [option...] --serverinfo
遠程消息隊列模式:
msmtp [option...] --rmqs=host|@domain|#queue
yz (DESCRIPTION)
在預設的發郵件模式下,msmtp 從標準輸入讀取郵件,然後把它送給SMTP
伺服器處理
當處於伺服器消息模式下,msmtp 會顯示SMTP 伺服器的有關信息
而當它處於遠程消息隊列模式時,msmtp 將為主機或者域發出RMQS
請求,或者向SMTP 伺服器發出隊列請求
hXA (EXIT STATUS)
這裏使用標準的sendmail 退出狀態代碼,就像在 sysexits.h 中定義的那樣
想快速上手,可跳到EXAMPLES 部分
(OPTIONS)
這裏的選項將覆趕t置檔案中的相同選項
他怞b某些地方與sendmail 相容
@ (General options)
--version
顯示版本信息。這些信息包括TLS/SSL
庫信息(如果有),用於驗証的庫以及這些庫
所支持的驗証方式,還有預設的全局配置檔案和使用者配置檔案信息
--help 顯示幫助
-P, --pretend
顯示使用的配置信息,但不真正執行什麼操作。密碼將會以 ***
的形式顯示
-d, --debug
顯示很多調試信息,包括與SMTP
伺服器的所有會話。小心使用這蚇龠窗]潛在滅I):
所有輸出沒經過什麼處理,密碼可能以一種極易解碼的方式被顯示出來
@ (Changing the mode of operation)
-S, --serverinfo
顯示SMTP
伺服器的信息並退出。信息中包含了所有支持的特性,如郵件大小-
制、 驗証方式、TLS、DSN 等等。如果伺服器支持TLS
的話,還有TLS 証書信息
--rmqs=(host|@domain|#queue)
為指定的主機或者域發送一-
荈}啟遠程消息隊列的請求,或者向SMTP 伺服器發送隊列
請求,並退出
tm (Configuration options)
-C, --file=filename
用指定的檔案代替~/.msmtprc 作為使用者配置檔案
-a, --account=account_name
用指定的帳號代替"default" 字段中的帳號。這-
荓b號的設置能以命令行選項的方式進行 更改。但這蚇龠竣ㄞ鉬P
--host 合用
--host=hostname
用命令行指定一紎MTP 伺服器,不用配置檔案中的任何數據。這-
蚇龠竣ㄞ鉬P --account 選項合用
--port=number
設置n連接的端口。參看下 port 命令
--timeout=(off|seconds)
設定網路超時。參看下 timeout
命令。為了相容老版本,--connect-timeout 作為這蚇龠答漣O名
--protocol=(smtp|lmtp)
設定所用的協議。參看下 protocol 命令
--auth[=(on|off|method)]
開啟或關閉驗証,也可隨意選擇一蚥蝯方式。參看下 auth
命令
--user=[username]
設置或清空用於驗証的使用者名。參看下 user 命令
--tls[=(on|off)]
開啟或關閉TLS 加密。參看 tls 命令
--tls-starttls[=(on|off)]
開啟或關閉TLS 加密的STARTTLS 。參看下 tls_starttls 命令
--tls-trust-file=[file]
設置或清空TLS 加密的trust file。參看下 tls_trust_file
命令
--tls-key-file=[file]
設置或清空TLS 加密的key file。參看下 tls_key_file 命令
--tls-cert-file=[file]
設置或清空TLS 加密的cert file。參看下 tls_cert_file 命令
--tls-certcheck[=(on|off)]
開啟或關閉TLS 加密的証書檢驗。參看下 tls_certcheck 命令
--tls-force-sslv3[=(on|off)]
強制使用SSLv3。參看下 tls_force_sslv3 命令
--domain=[string]
設置SMTP EHLO (or LMTP LHLO)命令的參數。參看 domain 命令
o (Options specific to sendmail mode)
--auto-from[=(on|off)]
開啟或關閉automatic envelope-from
addresses。預設關閉。參看下 auto_from 命令
-f, --from=address
設定envelope-from address。僅當 auto_from 關閉時才有用
如果未用 --account 或 --host 指定帳號,這蚇龠絲|選擇第一-
蚞皉陬 定envelope-from address 的帳號。看看 from
命令。如果沒找到符合條件的帳號 ,就用"default"
--maildomain=[domain]
為生成的envelope-from addresses 指定一荌魽C僅當 auto_from
開啟時才有用。 參看下 maildomain 命令
-N, --dsn-notify=(off|cond)
設置或清空DSN notification conditions。參看下 dsn_notify
命令
-R, --dsn-return=(off|ret)
設置或清空 DSN notification amount。參看下 dsn_return
命令。注意為 相容sendmail ,hdrs 被定義成 headers 的別名
--keepbcc[=(on|off)]
是否保留Bcc header。參看下 keepbcc 命令
-X, --logfile=[file]
設置或清除log file。參看下 logfile 命令
--syslog[=(on|off|facility)]
是否啟用syslog。參看下 syslog 命令
-t, --read-recipients
從郵件的To, Cc, Bcc headers
處提取收件人地址,而不從命令行讀入
-- 從這以後的參數均被認為是收件人地址,即使以 '-'
開頭。這標誌著選項列表結束了
以下選項可用,但相容的sendmail 忽略。
-Btype, -bm, -Fname, -G, -hN, -i, -L tag, -m, -n, -O option=value, -ox
value, -v
k (USAGE)
通常,全局配置檔案和(或)使用者配置檔案包含了SMTP
伺服器以及如何與之通信的所有信
息。但是,幾乎所有的選項也可以在命令行上配置
SMTP 伺服器的信息以 accounts 方式組織在一起。每荓b號描z了一台SMTP 服
務器的主機名、驗証設置、TLS 設置等等。每荌t置檔案能定義多荓b號
在發件模式,必須n有一翀nvelope-from,這被作為鴝l發件人發送給SMTP
伺服器。 當 auto_from 開啟時,Envelope-from
的地址也能自動生成,或者也能明確地 用 form 或 --from 設定。auto_from
能生成形如 user@domain 這樣的地址。user 部分將以 $USER
代替,如果不行,就用 $LOGNAME
代替,再不行的話,就用當前登入的使用者名。domain 部分能用 maildomain 設
定。如果maildomain 未設好,envelope-from 中將只有使用者名,而不含域名。
使用者能選擇用荓b號,以下方法三選一:
--account=id
用給定帳號。命令行選項會覆趕t置檔案中的設定
--host=hostname
只用來自命令行的選項,不用配置檔案中的
--from=address
從全局或使用者配置檔案中選擇與 from 命令指定的地址匹配的envelop-
from 地址。 只有 --account 和 --host 都沒有設定時才用得到這蚇龠
如果以上選項一茬ㄗS用到,又或者用了 --from 但沒有一荓b號與 from
命令的結果匹配,那就使用"default" 帳號
tm (CONFIGURATION FILES)
如果全局配置檔案存在並可讀,會調用檔案SYSCONFDIR/msmtprc,SYSCONFDIR
依賴於你的 系統。用 --version 可以找到用了茈媬
如果使用者配置檔案存在並可讀,就調用它(預設是~/.msmtprc
)。使用者配置中的帳號會覆誑局配置中的相同帳號。除了擁有者的讀寫權外,決不給配置檔案其它多餘的權-
。無論 荌t置檔案中的設置都可以用命令行選項更改
配置檔案是荋雲q文本而已,忽略空行和注釋行(以'#'開頭)
其它行必須包含一條命令以及可能的參數
如果參數的第一茤帠怮嶀@茼釭聽捸An用雙引號(")括起來
如果檔案的第一茼r符是"~",將會用$HOME 代替。如果命令能接受一 on 參數,
它也會接受空參數並預設它是 on 參數。
命令的集合形成groups 。每組以 account 命令開頭,接著是SMTP 伺服器的設置
想快速上手,可跳到EXAMPLES 部分
命令說明如下:
defaults
設置defaults。接下去的設置命令將當前配置檔案中的所有帳號指定預設-
account name [:account[,...]]
開始定義新帳號,填充預設
如果有逗號和預先定義好的帳號名跟在account 後-
情A所有列表中的帳號會擁有同樣的 設置,並填充預設
host hostname
郵件發送目的地SMTP 伺服器,參數可以是主機名或者網路地址。每-
荓b號都必須包含 這茤R令
port number
SMTP 伺服器監聽端口。預設端口會從你作業系統的service database
中獲取。對於 SMTP 來說,服務名是"smtp"
(預設端口25),除非使用不帶STARTTLS 的TLS ,在此種
情況下服務名是"ssmtp"(445)。對於LMTP,服務名是"lmtp"
timeout (off|seconds)
設置或清除網路超時(以秒p)。off
參數表示不設超時,這意味著使用作業系統 預設的超時設定
為與老版本相容, connect_timeout 可作為這條命令的別名
protocol (smtp|lmtp)
設置所用的協議,目前只支持SMTP
和LMTP,預設SMTP。想知道預設端口,看上悸 port 命令
auto_from [(on|off)]
是否允逝tomatic envelope-
from。預設不允部C開啟時,會生成類似user@domain 形 式的envelope-
from。 user 部分將以 $USER 代替,如果不行,就用 $LOGNAME
代替,再不行的話,就用當前登入的使用者名。domain 部分能用
maildomain 設定。如果maildomain 未設好,envelope-from
中將只有使用者名,而 不含域名。關閉時,,envelope-from
必須明確指定
from envelope_from
設置envelope-from,僅當 auto_from 關閉時才有用
maildomain [domain]
設置envelope 域名部分。僅當 auto_from 開啟時才有用,域名可以為空
auth [(on|off|method)]
這條命令控制是否允袈 驗証。你沒有必n自己來設定驗証方式,只n用了
on 參數,msmtp 會為你選擇一茬怢峇霈(看下)。
你可能需n用 user 命令來設置一茖洏峈怞W,用 password 命令設置一
密碼。如果不指定密碼,而msmtp 運行時發現在驗証時又需n密碼,msmtp
會試著從 ~/.netrc 中找一荂A如果不行的話,msmtp 會提示你輸入一
支持的驗証方式有 plain, cram-md5, digest-md5, gssapi, external,
login, and ntlm 。注意由於可能缺少下悸瘍蝯庫,你 會有一茤峖h-
蚥蝯方式不能用。用 --version 選項看看支持些方法。
plain 和 login 把你的驗証信息在網上以明文傳輸,因此應該僅把它怍M
tls 命令一起用。
如果不自己選擇方式的話,msmtp 會選擇SMTP
伺服器支持的最安全的方式,安全指你的
信息在網上不會以明文發送。在TLS
加密連接下任何一種驗証方式都是安全的。如果不 用TLS
,只有gssapi,digest-md5,cram-md5 and ntlm 是安全的。
external 方法比較特殊:真正的驗証操作位於SMTP 協議之外,發送TLS
客戶端 証書(看 tls_cert_file 命令)就是茖憳洧狺l。external
只確認這次驗
証對於給定的使用者是否成央A如果不給使用者名的話,就只確認驗証是否成央C[注:總之
它就把具體驗証和加密的事情全推給了外接{式,與msmtp
無關了]。msmtp 不會選這種 驗証方式,你必須親自指定。
user [username]
設置用於SMTP
驗証的使用者名,參數為空時清除使用者名。証驗操作必須用 auth 命
令激活
password [secret]
設置用於SMTP 驗証的密碼,參數為空時清除密碼。証驗操作必須用 auto
命令 激活。如果不指定密碼,而驗証操作又需n密碼,msmtp 會試著從
~/.netrc 中找一荂A 如果不行的話,msmtp 會提示你輸入一
ntlmdomain [domain]
設置用於 ntlm
驗証方式的域名,預設不用域名(等同於空參數)。但有些伺服器好 像-
n的,即便給出的是任意字符串
tls [(on|off)]
是否允袍LS/SSL 加密連接。不是每茼曭A器都支持TLS
,但有了TLS,可以防止有人偷聽 與SMTP 的對話。除非用
tls_certcheck 命令關閉伺服器証書驗証,否則每次都n
完備性檢查。為全接o揮TLS/SSL 效力,推薦用 tls_trust_file
命令(看下)
tls_starttls [(on|off)]
預設狀態下,TLS 加密以STARTTLS SMTP 命令激活。關閉後,TLS
加密會立即啟動(這是 有名的SMTP tunneled through
TLS/SSL)。預設端口是465
為相容老版本, tls_nostarttls 作為 tls_starttls off 的別名
tls_trust_file [file]
這條命令激活嚴格的伺服器証書驗証。這蚗仵蚰眸極]含一茤峖h茈HPEM
格式存在的受 信任的証書注冊機構(CAs)。空參數會關閉這荅S性。msmtp
通過受信檔案驗証伺服器的 可靠性
tls_key_file [file]
與 tls_cert_file 命令一起,使msmtp 在需n時發一份客戶端証書給SMTP
服務 器。這蚗仵蚰眸極]含PEM 格式証書的私鑰。空參數會關閉這荅S性
tls_cert_file [file]
與 tls_key_file 命令一起,使msmtp 在需n時發一份客戶端証書給SMTP
伺服器。 這蚗仵蚰眸極]含PEM 格式的証書。空參數會關閉這荅S性
tls_certcheck [(on|off)]
當TLS
啟用時,預設對伺服器証書進行完備性檢查。如果沒有檢查未通過,會取消TLS
連接。
為相容老版本, tls_nocertcheck 作為 tls_certcheck off 的別名
tls_force_sslv3 [(on|off)]
強制使用TLS/SSL 的SSLv3 版本。可能在一些用SSL
的老舊伺服器上有用。不過萬不得 已,別用這
dsn_notify (off|condition)
設定在在情況下,郵件系統應該發送DSN (Delivery Status
Notification)信息。 off 參數明確關閉DSN
請求,這意味著讓郵件決定什麼時埽oDSN 信息,預設如 此。 condition
可以是 never ,從不發送請求。或者是以逗號(沒有空 格!)分隔的一-
茤峖h茪U列參數: failure 失敗時發送, delay 延遲時 發送,
success 成幼伂o送。SMTP 伺服器必須支持DSN 才行。
dsn_return (off|amount)
在一封郵件中允釭藀^多少DSN 信息。 off 明確關閉DSN
請求,這意味著讓郵件 系統決定,預設如此。 amount 可以是 headers
只返回信息頭,full 返回郵件全部內容。SMTP 伺服器必須支持DSN 才行
domain argument
用來設定SMTP EHLO(or LMTP LHLO)命令的參數。預設是 localhost
(笨方法,但
有效)。其它可能的選擇有:郵件地址的域名部分(provider.example for
joe@provider. example),或者如果可能的話給出你主機的完整域名
keepbcc [(on|off)]
當發送郵件時是否保留Bcc header 信息,預設不保留。
logfile [file]
不給參數會關閉記錄,預設如此。
當選擇一胵ogfile 時,msmtp 會為每一封指定logfile
帳號的郵件添加一行記錄
記錄中會包含如下信息:日期、時間、SMTP
伺服器名字、是否用TLS、是否驗証、用於
驗証的使用者名(僅當用了驗証後)、信件來自-
裏、收件人地址、發出去的郵件大小(僅 當發送成幼)、SMTP
狀態代碼、SMTP 錯誤訊息(僅當發送失敗且錯誤訊息可得時)、
錯誤訊息(僅當發送失敗且錯誤訊息可得時)、退出代碼(來自
sysexits.h;EX_OK 代表 發送成
如果檔案是一短橫(-),msmtp 就把記錄信息輸出至標準輸出
syslog [(on|off|facility)]
是否允趺og 。facility
可以是LOG_USER、LOG_MAIL、LOG_LOCAL0...LOG_LOCAL7
諸多策略中的一荂A預設是LOG_USER。
每次msmtp 通過含有這條命令的帳號發郵件時,它均會在syslog
服務中以選定的策略追 加一條記錄
記錄中會包含如下信息:日期、時間、SMTP
伺服器名字、是否用TLS、是否驗証、用於
驗証的使用者名(僅當用了驗証後)、信件來自-
裏、收件人地址、發出去的郵件大小(僅 當發送成幼)、SMTP
狀態代碼、SMTP 錯誤訊息(僅當發送失敗且錯誤訊息可得時)、
錯誤訊息(僅當發送失敗且錯誤訊息可得時)、退出代碼(來自
sysexits.h;EX_OK 代表 發送成
d (EXAMPLES)
tm (Configuration file)
# Set default values for all following accounts.
defaults
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log
# A freemail service
account freemail
host smtp.freemail.example
from joe_smith@freemail.example
auth on
user joe.smith
password secret
# A second mail address at the same freemail service
account freemail2 : freemail
from joey@freemail.example
# The SMTP server of the provider.
account provider
host mail.provider.example
from smithjoe@provider.example
auth on
user 123456789
password my_password
# Set a default account
account default : provider
bMuttmsmtp (Using msmtp with Mutt)
為msmtp 建立一荌t置檔案,然後把下探X行加到Mutt 配置檔案中去
set sendmail="/path/to/msmtp"
set use_from=yes
set realname="Your Name"
set from=you@example.com
set envelope_from=yes
envelope_from=yes 讓Mutt 用msmtp的 -f 參數。這樣msmtp
會選擇符合you@example.com 的第一荓b號
你也可以選用 -a 參數
set sendmail="/path/to/msmtp -a my-account"
或者從命令行中設定所有內容
set sendmail="/path/to/msmtp --host=mailhub -f me@example.com --tls"
如果你有多荈l件帳號,並且想讓Mutt 用 -f
參數讓你可以在帳號之間輕鬆切換,把下探X行加到Mutt 配置檔案中去
macro generic "<esc>1" ":set from=you@example.com"
macro generic "<esc>2" ":set from=you@your-employer.example"
macro generic "<esc>3" ":set from=you@some-other-provider.example"
bmailWmsmtp (Using msmtp with mail)
定義一蚢w設帳號,然後把下惜@行放在 ~/.mailrc 中
set sendmail="/path/to/msmtp"
/(FILES / ENVIRONMENT)
SYSCONFDIR/msmtprc
全局配置檔案。用 --version 找出系統中的SYSCONFDIR 在裏
~/.msmtprc
使用者配置檔案
~/.netrc
檔案.netrc
包含了登入信息。如果在配置檔案中沒有找到密碼信息的話,msmtp
會在提 示使用者輸入之前先找這蚗仵蛂C .netrc 的用法在 netrc(5) 或
ftp(1) 中能找到
$USER, $LOGNAME
在構造信件來源地址時,這些變量會覆豪洏峈怐熊n入名。如果未指定$USER,就用$LOGNAME
$TMPDIR
建立臨時檔案的地方。如果未設置就用系統預設定義
僅當用到 -t/--read-recipients 選項時,才會創建臨時檔案。這-
蚗仵蚰峏騣w存郵件頭,不包括郵件本芋A所以檔案不 會太大
@ (AUTHORS)
msmtp was written by Martin Lambers <marlam@marlam.de>.
Other authors are listed in the AUTHORS file in the source
distribution.
(SEE ALSO)
mutt(1), mail(1), sendmail(8), netrc(5) or ftp(1)
[]
"Nickel Cobalt" <angelerosster@gmail.com>
[]
2007/05/01
[]
"Nickel Cobalt" <angelerosster@gmail.com>
mMAN-PAGEphttp://cmpp.linuxforum.net
2006-11 MSMTP(1)