Provided by: manpages-zh_1.5.1-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)
                     设定所用的幸椤2慰聪旅 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)
              设置所用的幸椋壳爸恢С諷MTP
              和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  幸橹猓⑺蚑LS
              客户端   证书(看   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

      Muttmsmtp (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"

      mailmsmtp (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)

[angelerosster@gmail.com>

[[angelerosster@gmail.com>

MAN-PAGEhttp://cmpp.linuxforum.net

                                    2006-11                           MSMTP(1)