在命令行写email from ubuntu

参考:
     http://www.habadog.com/2011/11/23/send-mail-with-msmtp-mutt-linux
     http://www.absolutelytech.com/2010/07/17/howto-configure-msmtp-to-work-with-gmail-on-linux
msmtp 是一款专门负责邮件发送的客户端软件,基于GPL发布,支持TLS/SSL、DNS模式、IPv6、服务器端认证、多用户等特性。
其主页是 msmtp.sourceforge.net:
     Msmtp is an SMTP client with a sendmail compatible interface ...
安装
     sudo apt-get install mutt msmtp

如需要对TLS/SSL的支持,还需要安装 GnuTLS 或者 OpenSSL,官方推荐 GnuTLS (https://help.ubuntu.com/community/GnuTLS):
     sudo apt-get install gnutls-bin

另外,使用 Gmail 需要安装 ca-certificates:
     sudo apt-get install ca-certificates
msmtp 有 3 中工作模式:
     Sendmail mode (default)
     Server information mode
     Remote Message Queue Starting mode
对于发送邮件来说,使用 Sendmail mode (default) 就可以了:
      In  the  default sendmail mode, msmtp reads a mail from standard input and sends it to an SMTP server for delivery.

配置 msmtp
安装完后,编辑 msmtp 配置文件 ~/.msmtprc

    defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt account default
host smtp.gmail.com
port 587
auth on
user username@gmail.com
password mypass
from username@gmail.com
logfile ~/msmtp.log

把 username@gmail.com 和 mypass 替换成实际的邮箱和密码就可以了,这里密码是明文。注意,发送邮件默认是 25 端口,但是 Gmail 邮件服务商用的不是 25 端口,而是 465 或 587 端口。如果不设置端口,发送邮件会报错 "Must issue a STARTTLS command first"。logfile 如果设置的时候要注意设置访问权限,保证当前用户可写。

保存后,修改访问权限

     chmod 0600 .msmtprc

如果不这样,会报错:

     must have no more than user read/write permissions

测试发送邮件:

     msmtp XXX@example.com

输入任意字符,然后按Ctrl+D退出,查看邮件是否收到。可以查看 logfile 里面的发送日志记录。

配置 mutt

查看 msmtp 安装路径

     $ which msmtp

     /usr/bin/msmtp

编辑 mutt 配置文件 ~/.muttrc

    set sendmail="/path/to/msmtp"
set use_from=yes
set realname="Your Name"
set from=you@example.com
set envelope_from=yes
set editor="vim"

后面就可以用 mutt 写邮件后通过 msmtp 发送了。

小结

对于 msmtp 的详细介绍,可以参考 http://msmtp.sourceforge.net/documentation.html 或者 man msmtp。

文档里面提供了配置示例,包括 msmtp 配合 mutt 的配置。

最新文章

  1. Java 枚举用法详解
  2. 创建ajax异步对象方法
  3. AES,RSA对称加密和非对称加密
  4. 【复位】FGPA的复位 [部分转]
  5. 基于WWF搭建的通用审批流程
  6. (转载)PHP 判断常量,变量和函数是否存在
  7. NandFlash
  8. 并查集(逆序处理):HDU 5652 India and China Origins
  9. [转] 关于c++的头文件依赖
  10. 利用ajax从txt读取数据
  11. python导入模块的方法
  12. TCP/IP的网际层协议——ICMP
  13. 一、Cocos2dx在visualStudio或者vc++中环境搭建(入门篇)
  14. app耗电优化之二 使用电源管理来安排任务
  15. [知了堂学习笔记]_eclipse引入svn插件,并将项目同步到svn
  16. Idea简单SpringMVC框架配置
  17. Win10如何彻底禁用小娜?彻底禁用小娜的方法
  18. Mesos源码分析(5): Mesos Master的启动之四
  19. easy-ui 中的事件触发 (tree)
  20. mysql数据库操作语句整合

热门文章

  1. php 利用fsockopen GET/POST 提交表单及上传文件
  2. linux下安装MYSQL详细配置(转)
  3. Blocks与Dispatch Queue的使用
  4. Java开发工具全面比较
  5. 构建一个高可扩展性javabean和jsp连接数据库操作
  6. html5-语义化标签(一)
  7. 前端新手如何安装webstorm ,初步搭建react项目
  8. 23.读写锁ReadWriteLock
  9. 【BZOJ】【2741】【FOTILE模拟赛】L
  10. Page Redirect Speed Test