• 在命令行上 使用 mutt, fetchmail, maildrop, msmtp 收发邮件


    基于shell

    现在已经有了 Mail.app, Thunderbird, Outlook 这些图形化工具能很方便的处理邮件,为啥还需要 mutt 这种命令行文本方式的邮件工具呢?mutt 的一个优势是占用资源小,可以很好的运行在低配置的虚拟机或古老的电脑上(应该不会有人想在 256MB 内存的虚拟机或 VPS 上用 X Window/Gnome/Thunderbird 这种组合吧)。那为什么要在虚拟机上收发邮件呢,不能在自己电脑上处理邮件吗?可能有多个电脑而且电脑经常换,电脑可能被盗,硬盘可能坏、数据可能丢,邮件放在本地电脑不太方便,有些电脑可能是共用的,在共用电脑上保留自己的邮件帐号不爽。那为啥不直接用 Gmail 收发 POP/IMAP 工作邮件呢?有时候可能需要在别人的电脑上打开工作邮件,比如核对一些事情、计划、会议记录之类的,在公共电脑或者别人电脑上开自己的私人邮箱是件很危险的事情,谁知道电脑上有没有病毒、木马或者键盘纪录程序?

    建议经常使用 Gmail 的用户激活 2-step verification 增加安全性。

    总之吧,现在的需求是:ssh 到一台服务器或虚拟机上,用 mutt 处理邮件。

    在 Ubuntu 上

    在 Ubuntu 上安装 mutt + fetchmail + maildrop + msmtp:

    # apt-get install mutt fetchmail maildrop msmtp

    在 FreeBSD 上

    在 FreeBSD 上安装 mutt + fetchmail + maildrop + msmtp:

    # pkg_add -r mutt
    # pkg_add -r fetchmail
    # pkg_add -r maildrop
    # pkg_add -r msmtp

    配置 mutt

    touch 一个文件用来存放邮件:

    # mkdir /var/spool/mail
    # touch /var/spool/mail/vpsee

    配置 fetchmail 通过 POP 收邮件:

    $ vi .fetchmailrc
    poll "mail.vpsee.com"
    protocol pop3
    username "vpsee"
    password "password"
    mimedecode                      # 自动处理 mime 
    mda "/usr/bin/maildrop"         # 告诉 fetchmail 使用哪个 MDA (for Ubuntu)
    #mda "/usr/local/bin/maildrop"  # 告诉 fetchmail 使用哪个 MDA (for FreeBSD)
    
    $ chmod 0700 .fetchmailrc

    配置 maildrop,告诉 maildrop 把邮件分发到哪里(其实是一个 /var/spool/mail/ 下的一个文件),注意这个时候要处理一下权限问题,否则用户登陆执行 fetchmail 后由 maildrop 分发到邮箱( /var/spool/mail/vpsee)的时候会出现权限错误(因为 maildrop 没有权限写那个文件):

    # touch /var/spool/mail/vpsee
    # chown vpsee:vpsee /var/spool/mail/vpsee
    
    $ vi .mailfilter
    HOME=/home/vpsee              # 指定 home 目录
    DEFAULT=/var/spool/mail/vpsee # 想在哪里保持邮件
    logfile "$HOME/.maillog"      # 日志

    配置 msmtp 用 SMTP 发邮件:

    $ vi .msmtprc
    account default
    host mail.vpsee.com
    from vpsee@vpsee.com
    auth off

    配置 mutt,在 mutt 配置文件里面指明 msmtp 路径,注意 Ubuntu 和 FreeBSD 的默认安装路径不同(/usr/bin vs /usr/local/bin)

    $ vi .muttrc
    set realname            = "vpsee"
    set from                = "vpsee@vpsee.com"
    set use_from            = yes
    set envelope_from       = yes
    set spoolfile           = /var/spool/mail/vpsee
    set sendmail="/usr/bin/msmtp" # for Ubuntu
    #set sendmail="/usr/local/bin/msmtp" # for FreeBSD

    使用 mutt

    执行 fetchmail 收邮件,然后就可以用 mutt 读、写、回复邮件了:

    $ fetchmail -v
    
    $ mutt
    mutt
  • 相关阅读:
    SpringCloud_组件常用注解
    SpringBoot_启动器
    SICP习题 1.5 (应用序与正则序)
    SICP习题 1.4 ( if 语句返回运算符)
    SICP习题 1.3 (求较大两个数的递归)
    SICP习题 1.2 (前缀表达式)
    SICP习题 1.1 (if cond语句)
    MySQL5.7 踩坑实录
    类找不到总结java.lang.ClassNotFoundException
    网易校招2018----题目3----字符串碎片
  • 原文地址:https://www.cnblogs.com/chjbbs/p/6389372.html
Copyright © 2020-2023  润新知