Provided by: manpages-zh_1.5.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

                                    2006-11                           MSMTP(1)