heirloom-mailx

https://www.cnblogs.com/sinsenliu/p/9328628.html

安装

  • mail命令在Ubuntu下是需要安装的,使用下条命令进行安装:
  • sudo apt-get install heirloom-mailx
  • 接下来输入用户密码,等待安装完成

    配置

  • 此时还不能发送外部服务器邮件,需要完成以下配置,修改/etc/nail.rc或者/etc/s-nail.rc(Ubuntu)、/etc/mail.rc(centOS)

  • vi /etc/nail.rc或者/etc/s-nail.rc
  • 此时如果打印没有权限则使用sudo命令
  • 在nail.rc文件末尾添加一下两行代码:
  • set from=邮箱地址 smtp=smtp.邮箱地址后缀 //如set from=123456@qq.com smtp=smtp.qq.com
  • set smtp-auth-user=邮箱地址 smtp-auth-password=”邮箱密码” smtp-auth=login

    使用

  • 按照以上步骤设置完毕之后即可使用mail命令发送邮件,发送邮件有以下三种方式:

  • 方法一:交互形式发送邮件
    • mail + 邮箱地址
    • 填写主题
    • 填写内容
    • ctrl + d 结束输入
    • cc代表抄送,回车完成发送
  • 方法二:通道形式发送
    • echo “邮件内容” | mail -s “主题” 邮箱地址
  • 方法三:读取文件内容发送

    • mail -s “主题” “邮箱地址” < “path/filename”  

      问题

  • 如果发送失败,可能是使用的邮箱未开启第三方登陆权限

  • 以QQ邮箱为例,在设置-账户页面开启SMTP服务,通过发送短信验证,得到授权码
  • 在第二步配置中的邮箱登陆密码,改为该16位授权码

    sendemail

    https://blog.csdn.net/warlice/article/details/90519232

安装

在ubuntu上安装sendemail。
apt install sendemail

帮助

常用参数

  1. sendEmail --help
  2. sendEmail-1.56 by Brandon Zehm <caspian@dotconf.net>
  3. Synopsis: sendEmail -f ADDRESS [options]
  4. Required:
  5. -f ADDRESS from (sender) email address
  6. * At least one recipient required via -t, -cc, or -bcc
  7. * Message body required via -m, STDIN, or -o message-file=FILE
  8. Common:
  9. -t ADDRESS [ADDR ...] to email address(es)
  10. -u SUBJECT message subject
  11. -m MESSAGE message body
  12. -s SERVER[:PORT] smtp mail relay, default is localhost:25
  13. -S [SENDMAIL_PATH] use local sendmail utility (default: /usr/bin/sendmail) instead of network MTA
  14. Optional:
  15. -a FILE [FILE ...] file attachment(s)
  16. -cc ADDRESS [ADDR ...] cc email address(es)
  17. -bcc ADDRESS [ADDR ...] bcc email address(es)
  18. -xu USERNAME username for SMTP authentication
  19. -xp PASSWORD password for SMTP authentication

smtp验证码

qq邮箱,在设置/账户页,查找到如下设置。点击开启pop3/smtp服务。这个过程需要用安保手机向服务方发送“配置邮件客户端”的短信。然后就可以看到授权码了
【Linux】mail命令 - 图1

使用

注意:不要使用sendemail命令,这个是局域网内部发送使用的
应使用sendEmail

  1. sendEmail -xu ******@qq.com -xp 授权码 -t *****@qq.com -u "标题" -m "正文" -s smtp.qq.com -f ******@qq.com
  2. -f 是发送邮箱地址
  3. -xu smtp邮箱用户名
  4. -xp smtp的授权码
  5. -u 是主题
  6. -m 是邮件正文
  7. -s smtp服务器域名