Provided by: manpages-zh_1.6.3.2-1_all bug

NAME

       msmtp - An SMTP client

概要 (SYNOPSIS)

       發郵件模式 (默認):
              msmtp [option...] [--] recipient...
              msmtp [option...] -t [--] [recipient...]

       服務器消息模式:
              msmtp [option...] --serverinfo

       遠程消息隊列模式:
              msmtp [option...] --rmqs=host|@domain|#queue

描述 (DESCRIPTION)

       在默認的發郵件模式下,msmtp 從標準輸入讀取郵件,然後把它送給SMTP 服務器處理
       當處於服務器消息模式下,msmtp 會顯示SMTP 服務器的有關信息
       而當它處於遠程消息隊列模式時,msmtp 將爲主機或者域發出RMQS 請求,或者向SMTP 服務器發出隊列
       請求

退出狀態 (EXIT STATUS)

       這裏使用標準的sendmail  退出狀態代碼,就像在  sysexits.h  中定義的那樣    想快速上手,可跳
       到EXAMPLES 部分

選項 (OPTIONS)

       這裏的選項將覆蓋配置文件中的相同選項
       他們在某些地方與sendmail 兼容

       一般選項 (General options)

              --version
                     顯示版本信息。這些信息包括TLS/SSL   庫信息(如果有),用於驗證的庫以及這些庫
                     所支持的驗證方式,還有默認的全局配置文件和用戶配置文件信息

              --help 顯示幫助

              -P, --pretend
                     顯示使用的配置信息,但不真正執行什麼操作。密碼將會以 *** 的形式顯示

              -d, --debug
                     顯示很多調試信息,包括與SMTP      服務器的所有會話。小心使用這個選項(潛在風
                     險): 所有輸出沒經過什麼處理,密碼可能以一種極易解碼的方式被顯示出來

       改變操作模式選項 (Changing the mode of operation)

              -S, --serverinfo
                     顯示SMTP 服務器的信息並退出。信息中包含了所有支持的特性,如郵件大小限制、 驗
                     證方式、TLS、DSN 等等。如果服務器支持TLS 的話,還有TLS 證書信息

              --rmqs=(host|@domain|#queue)
                     爲指定的主機或者域發送一個開啓遠程消息隊列的請求,或者向SMTP  服務器發送隊列
                     請求,並退出

       配置選項 (Configuration options)

              -C, --file=filename
                     用指定的文件代替~/.msmtprc 作爲用戶配置文件

              -a, --account=account_name
                     用指定的帳號代替"default" 字段中的帳號。這個帳號的設置能以命令行選項的方式進
                     行 更改。但這個選項不能與 --host 合用

              --host=hostname
                     用命令行指定一個SMTP        服務器,不用配置文件中的任何數據。這個選項不能與
                     --account 選項合用

              --port=number
                     設置要連接的端口。參看下面 port 命令

              --timeout=(off|seconds)
                     設定網絡超時。參看下面  timeout 命令。爲了兼容老版本,--connect-timeout 作爲
                     這個選項的別名

              --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 命令

       發件模式的選項 (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 指定一個域。僅當 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

用法 (USAGE)

       通常,全局配置文件和(或)用戶配置文件包含了SMTP 服務器以及如何與之通信的所有信 息。但是,幾
       乎所有的選項也可以在命令行上配置

       SMTP 服務器的信息以 accounts 方式組織在一起。每個帳號描述了一臺SMTP 服  務器的主機名、驗證
       設置、TLS 設置等等。每個配置文件能定義多個帳號

       在發件模式,必須要有一個envelope-from,這被作爲原始發件人發送給SMTP  服務器。 當 auto_from
       開啓時,Envelope-from 的地址也能自動生成,或者也能明確地 用 form--from 設定。auto_from
       能生成形如  user@domain  這樣的地址。user  部分將以 $USER 代替,如果不行,就用 $LOGNAME 代
       替,再不行的話,就用當前登錄的用戶名。domain 部分能用 maildomain 設 定。如果maildomain  未
       設好,envelope-from 中將只有用戶名,而不含域名。

       用戶能選擇用哪個帳號,以下方法三選一:

       --account=id
              用給定帳號。命令行選項會覆蓋配置文件中的設定

       --host=hostname
              只用來自命令行的選項,不用配置文件中的

       --from=address
              從全局或用戶配置文件中選擇與   from  命令指定的地址匹配的envelop-from  地址。  只有
              --account--host 都沒有設定時才用得到這個選項

       如果以上選項一個都沒用到,又或者用了 --from 但沒有一個帳號與  from  命令的結果匹配,那就使
       用"default" 帳號

配置文件 (CONFIGURATION FILES)

       如果全局配置文件存在並可讀,會調用文件SYSCONFDIR/msmtprc,SYSCONFDIR  依賴於你的  系統。用
       --version 可以找到用了哪個目錄
       如果用戶配置文件存在並可讀,就調用它(默認是~/.msmtprc )。用戶配置中的帳號會覆蓋 全局配置中
       的相同帳號。除了擁有者的讀寫權外,決不給配置文件其它多餘的權限。無論  哪個配置文件中的設置
       都可以用命令行選項更改

       配置文件是個普通文本而已,忽略空行和註釋行(以'#'開頭)
       其它行必須包含一條命令以及可能的參數
       如果參數的第一個或最後一個有空白,要用雙引號(")括起來
       如果文件的第一個字符是"~",將會用$HOME 代替。如果命令能接受一個 on 參數, 它也會接受空參數
       並默認它是 on 參數。
       命令的集合形成groups 。每組以 account 命令開頭,接着是SMTP 服務器的設置

       想快速上手,可跳到EXAMPLES 部分

       命令說明如下:

       defaults
              設置defaults。接下去的設置命令將當前配置文件中的所有帳號指定默認值

       account name [:account[,...]]
              開始定義新帳號,填充默認值
              如果有逗號和預先定義好的帳號名跟在account   後面,所有列表中的帳號會擁有同樣的   設
              置,並填充默認值

       host hostname
              郵件發送目的地SMTP 服務器,參數可以是主機名或者網絡地址。每個帳號都必須包含  這個命
              令

       port number
              SMTP  服務器監聽端口。默認端口會從你操作系統的service database 中獲取。對於 SMTP 來
              說,服務名是"smtp" (默認端口25),除非使用不帶STARTTLS 的TLS  ,在此種  情況下服務名
              是"ssmtp"(445)。對於LMTP,服務名是"lmtp"

       timeout (off|seconds)
              設置或清除網絡超時(以秒計)。off 參數表示不設超時,這意味着使用操作系統 默認的超時設
              定
              爲與老版本兼容, connect_timeout 可作爲這條命令的別名

       protocol (smtp|lmtp)
              設置所用的協議,目前只支持SMTP 和LMTP,默認SMTP。想知道默認端口,看上面的 port 命令

       auto_from [(on|off)]
              是否允許automatic  envelope-from。默認不允許。開啓時,會生成類似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)]
              這條命令控制是否允許SMTP    驗證。你沒有必要自己來設定驗證方式,只要用了    on   參
              數,msmtp 會爲你選擇一個最佳方案(看下面)。
              你可能需要用 user 命令來設置一個用戶名,用 password 命令設置一個 密碼。如果不指定密
              碼,而msmtp  運行時發現在驗證時又需要密碼,msmtp 會試着從 ~/.netrc 中找一個,如果不
              行的話,msmtp 會提示你輸入一個
              支持的驗證方式有 plain, cram-md5, digest-md5, gssapi,  external,  login,  and  ntlm
              。注意由於可能缺少下面的驗證庫,你  會有一個或多個驗證方式不能用。用 --version 選項
              看看支持哪些方法。
              plainlogin 把你的驗證信息在網上以明文傳輸,因此應該僅把它們和 tls 命令一起用。
              如果不自己選擇方式的話,msmtp 會選擇SMTP 服務器支持的最安全的方式,安全指你的  信息
              在網上不會以明文發送。在TLS 加密連接下任何一種驗證方式都是安全的。如果不 用TLS ,只
              有gssapi,digest-md5,cram-md5 and ntlm 是安全的。
              external  方法比較特殊:真正的驗證操作位於SMTP  協議之外,發送TLS  客戶端   證書(看
              tls_cert_file   命令)就是個典型例子。external  只確認這次驗  證對於給定的用戶是否成
              功,如果不給用戶名的話,就只確認驗證是否成功。[注:總之  它就把具體驗證和加密的事情
              全推給了外面程序,與msmtp 無關了]。msmtp 不會選這種 驗證方式,你必須親自指定。

       user [username]
              設置用於SMTP 驗證的用戶名,參數爲空時清除用戶名。證驗操作必須用 auth 命 令激活

       password [secret]
              設置用於SMTP  驗證的密碼,參數爲空時清除密碼。證驗操作必須用 auto 命令 激活。如果不
              指定密碼,而驗證操作又需要密碼,msmtp  會試着從  ~/.netrc   中找一個,   如果不行的
              話,msmtp 會提示你輸入一個

       ntlmdomain [domain]
              設置用於 ntlm 驗證方式的域名,默認不用域名(等同於空參數)。但有些服務器好 像要的,即
              便給出的是任意字符串

       tls [(on|off)]
              是否允許TLS/SSL   加密連接。不是每個服務器都支持TLS   ,但有了TLS,可以防止有人偷聽
              與SMTP  的對話。除非用  tls_certcheck 命令關閉服務器證書驗證,否則每次都要 完備性檢
              查。爲全面發揮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]
              這條命令激活嚴格的服務器證書驗證。這個文件必須包含一個或多個以PEM 格式存在的受 信任
              的證書註冊機構(CAs)。空參數會關閉這個特性。msmtp 通過受信文件驗證服務器的 可靠性

       tls_key_file [file]
              與 tls_cert_file 命令一起,使msmtp 在需要時發一份客戶端證書給SMTP 服務 器。這個文件
              必須包含PEM 格式證書的私鑰。空參數會關閉這個特性

       tls_cert_file [file]
              與  tls_key_file 命令一起,使msmtp 在需要時發一份客戶端證書給SMTP 服務器。 這個文件
              必須包含PEM 格式的證書。空參數會關閉這個特性

       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 請求,這意味着讓郵件決定什麼時候發DSN 信息,默認如 此。 condition  可以
              是    never   ,從不發送請求。或者是以逗號(沒有空   格!)分隔的一個或多個下列參數:
              failure 失敗時發送, delay 延遲時 發送, success 成功時發送。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]
              不給參數會關閉記錄,默認如此。
              當選擇一個logfile 時,msmtp 會爲每一封指定logfile 帳號的郵件添加一行記錄
              記錄中會包含如下信息:日期、時間、SMTP 服務器名字、是否用TLS、是否驗證、用於 驗證的
              用戶名(僅當用了驗證後)、信件來自哪裏、收件人地址、發出去的郵件大小(僅    當發送成功
              時)、SMTP 狀態代碼、SMTP 錯誤信息(僅當發送失敗且錯誤信息可得時)、 錯誤信息(僅當發送
              失敗且錯誤信息可得時)、退出代碼(來自 sysexits.h;EX_OK 代表 發送成功)
              如果文件是一短橫(-),msmtp 就把記錄信息輸出至標準輸出

       syslog [(on|off|facility)]
              是否允許syslog 。facility 可以是LOG_USER、LOG_MAIL、LOG_LOCAL0...LOG_LOCAL7  諸多策
              略中的一個,默認是LOG_USER。
              每次msmtp  通過含有這條命令的帳號發郵件時,它均會在syslog 服務中以選定的策略追 加一
              條記錄
              記錄中會包含如下信息:日期、時間、SMTP 服務器名字、是否用TLS、是否驗證、用於 驗證的
              用戶名(僅當用了驗證後)、信件來自哪裏、收件人地址、發出去的郵件大小(僅    當發送成功
              時)、SMTP 狀態代碼、SMTP 錯誤信息(僅當發送失敗且錯誤信息可得時)、 錯誤信息(僅當發送
              失敗且錯誤信息可得時)、退出代碼(來自 sysexits.h;EX_OK 代表 發送成功)

範例 (EXAMPLES)

       配置文件 (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

       在Mutt 中使用msmtp (Using msmtp with Mutt)

       爲msmtp 建立一個配置文件,然後把下面幾行加到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 的第一個帳
       號
       你也可以選用 -a 參數
       set sendmail="/path/to/msmtp -a my-account"
       或者從命令行中設定所有內容
       set sendmail="/path/to/msmtp --host=mailhub -f me@example.com --tls"

       如果你有多個郵件帳號,並且想讓Mutt  用   -f   參數讓你可以在帳號之間輕鬆切換,把下面幾行加
       到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"

       在mail 中用上msmtp (Using msmtp with mail)

       定義一個默認帳號,然後把下面一行放在 ~/.mailrcset sendmail="/path/to/msmtp"

文件/系統環境 (FILES / ENVIRONMENT)

       SYSCONFDIR/msmtprc
              全局配置文件。用 --version 找出系統中的SYSCONFDIR 在哪裏

       ~/.msmtprc
              用戶配置文件

       ~/.netrc
              文件.netrc  包含了登錄信息。如果在配置文件中沒有找到密碼信息的話,msmtp 會在提 示用
              戶輸入之前先找這個文件。 .netrc 的用法在 netrc(5) 或 ftp(1) 中能找到

       $USER, $LOGNAME
              在構造信件來源地址時,這些變量會覆蓋用戶的登錄名。如果未指定$USER,就用$LOGNAME

       $TMPDIR
              建立臨時文件的地方。如果未設置就用系統默認定義
              僅當用到 -t/--read-recipients  選項時,纔會創建臨時文件。這個文件用於緩存郵件頭,不
              包括郵件本身,所以文件不 會太大

作者 (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>

《中文MAN-PAGE計劃》

       http://cmpp.linuxforum.net

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

                                             2006-11                                     MSMTP(1)