命令行发送邮件

CentOS
  • stop or remove sendmail:yum remove sendmail
  • yum install postfix
  • yum install mailx
  • 检查MTA是否为Postfix:alternatives --display mta
  • 如果不是更改默认MTA为Postfix:/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
  • 检测并启动Postfix
    • service postfix status
    • service postfix start
  • 设置开机启动  chkconfig postfix on
rm /var/spool/postfix/pid/master.pid

/etc/mail.rc
配置mail
set from=test@163.com
set smtp=smtp.163.com
set smtp-auth-user=test
set smtp-auth-password=test
set smtp-auth=login

OSX 
使用sendemail
http://blog.sciencenet.cn/blog-233165-407470.html

发送邮件:

最简单的方法:

mail -s text **@mail.ustc.edu.cn

这条命令的结果是发一封标题为text的空信给后面的邮箱,但是往往这类邮件会被当成垃圾邮件来处理,所以如果没有收到邮件,建议打开垃圾箱来查看一下.第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束。

#第二种方法,使用管道命令

echo “This is a test mail!”|mail -s text **@mail.ustc.edu.cn

#第三种方法,使用重定向。

mail -s test **@mail.ustc.edu.cn < file

file的内容为邮件内容发信,首先选择事先写好一个文档然后再mail过去。

带附件的邮件发送(重点)

如果你的系统中没有uuencode命令的话,则需要先安装sharutils,
       sudo apt-get install sharutils。
       uuencode 需要两个参数,第一个是你要发送的文件,当然这个也可以用管道来做,第二个是显示的文件名
       uuencode /home/daniel/httpd.conf httpd.conf|mail -s mailtest  **@mail.ustc.edu.cn




可以使用 `Blat` 这款开源命令行工具通过 SMTP 模式发送邮件。它支持多种参数配置,能够满足基本的邮件发送需求。 ### 使用 Blat 发送邮件的基本语法 ```cmd Blat -body "邮件内容" -s "邮件主题" -t 收件人邮箱 -server SMTP服务器地址 -f 发件人邮箱 -u 登录用户名 -pw 登录密码 ``` 例如,使用 QQ 邮箱发送一封测试邮件: ```cmd Blat -body "test mail" -s "测试test" -t nn1183@qq.com -server smtp.qq.com -f 442624872@qq.com -u 442624872@qq.com -pw lcgcaflcjewvb ``` 此命令会以指定的发件人身份登录到 `smtp.qq.com` 并发送一封包含文本“test mail”的邮件[^1]。 ### 使用附件发送邮件 若需要附带文件,可添加 `-attach` 参数并指定文件路径: ```cmd Blat C:/mail.txt -to demo@demo.com -attach "C:/fujia.txt" -s "zhuti" -u user@163.com -pw password -charset Gb2312 ``` 该命令将 `C:/mail.txt` 内容作为邮件正文,并附加了 `C:/fujia.txt` 文件发送给收件人 `demo@demo.com` [^2]。 ### 注意事项 - **安全性**:由于某些杀毒软件如 360 安全卫士可能会误判为病毒,请确保将 Blat 工具放置于信任目录中运行。 - **部署位置**:不建议将其安装在系统目录(如 `%WINDIR%\System32`)或修改环境变量以便全局调用;推荐与编写脚本放在同一目录下使用。 - **编码问题**:如果涉及非英文字符集,可以通过 `-charset` 参数指定编码方式,比如 GBK 或 UTF-8 等。 ### 其他方法 除了 Blat 外,还可以尝试直接使用 Telnet 协议手动连接至 SMTP 服务器进行邮件发送操作。这种方式较为复杂且需要了解 SMTP 协议交互过程,包括建立连接、认证以及数据传输等步骤。具体流程如下: 1. 打开 CMD 并输入 `telnet smtp.qq.com 25` 来连接目标 SMTP 服务器。 2. 输入 `auth login` 后按回车键开始认证流程。 3. 根据提示依次提供经过 Base64 编码处理后的用户名和密码完成登录。 4. 接下来按照标准 SMTP 命令格式继续执行后续动作直至成功提交邮件内容[^4]。 总之,无论选择哪种方案都应充分考虑安全性和便捷性之间的平衡点,并根据实际应用场景灵活选用最适合的技术手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值