Win7 中使用 blat 自动发邮件

Win7 中使用 blat 自动发邮件

CentOS 中内置有 mail 命令,可以直接发邮件. Win7中没有这个功能,但是可以使用 blat 结合批处理来实现. blat 是一个小巧的命令行邮件客户端,可以直接在 cmd 中调用.
下载 blat 软件. http://www.blat.net/
下载位置

下载源码或软件
可以把源码和软件都下载下来,点击后,在随后的页面中下载,最后下载下来的是blat3222_32.full.zip 解压后得到 blat3222, 进入后看到两个目录 docs 和 full, 进入 full, 找到blat.exe, 新建目录 D:\Auto_Mail, 把 blat.exe 拷贝进 Auto_Mail.

开始—运行—cmd,使用命令看起来更清晰:
在这里插入图片描述
下载 7zip, https://www.7-zip.org
在这里插入图片描述
根据需要下载32位或者64位的,我这里下载32位的. 下载安装后, 进入安装目录, 把 7z.exe 复制到 D:\Auto_Mail
在这里插入图片描述
进入 D:\Auto_Mail, 在 cmd 中操作如下:

D:\>cd Auto_Mail

D:\Auto_Mail>mkdir 0_pin

D:\Auto_Mail>mkdir pin_bak

D:\Auto_Mail>echo. > 1_write.txt

D:\Auto_Mail>echo. > 2_SentMail.bat

D:\Auto_Mail>

当前, D:\Auto_Mail 中的内容如下:
在这里插入图片描述
使用 blat 发邮件, 需要开通 smtp 服务, 以网易 163 邮箱为例:
在这里插入图片描述
开通 smtp 服务后, 保存退出即可.

右键 2_SentMail.bat 编辑, 输入以下内容(带 # 的内容不要写进去)

@echo off
color 02    # 设定颜色,黑底暗绿字
ping mail.163.com   # 看网络通不通

for /f "tokens=1,2,3 delims=- " %%i in ('date /t') do set date=%%i.%%j.%%k  # 获取当前日期
for /f "tokens=1,2 delims=: " %%i in ('time /t') do set time=%%i.%%j        # 获取当前时间
#这里要注意, 如果使用 %%i:%%j 的话, 因为在批处理中 : 是特殊符号, 所以会报错, 使用 . 替代 : 不会报错.

echo. >> 1_write.txt    # 清空
echo "写信时间: %date%-%time%" >> 1_write.txt  # 在邮件正文添加一个时间戳

set /p title="请输入信件标题: "  # 邮件标题
set from=sent_address@163.com    # 发件邮箱的地址
set user=your_email_id                   # 发件邮箱的用户名,注意:不要加单/双引号
set pass=your_password               # 发件邮箱的密码,注意:不要加单/双引号
set mail=1_write.txt                        # 以 1_write.txt  文本内容作为邮件正文
set server=smtp.163.com           # 设定 smtp 服务器,需要在发件邮箱里面开通此功能

set /p choice="是否有附件? y/n : "   # 根据需要选择发附件还是不发

if %choice%==n goto nopin
if %choice%==y goto onepin

:nopin
set to=reception@163.com    # 收件邮箱的地址
blat %mail% -to %to% -charset Gb2312 -subject %title%  -server %server% -f %from% -u %user% -pw %pass%
# 邮件正文   收件地址      编码                               标题        smtp服务器地址    发件地址      用户名            密码  

set to=reception@sina.com   # 收件邮箱的地址,可以参考这两条配置添加多个收件邮箱地址
blat %mail% -to %to% -charset Gb2312 -subject %title%  -server %server% -f %from% -u %user% -pw %pass%

echo. >  1_write.txt
xcopy /s/e/y/r .\0_pin\*.* .\pin_bak >nul 2>nul  # 复制附件内容到 pin_bak
echo.
rd /S/Q .\0_pin  >nul 2>nul             # 删除 0_pin 
md 0_pin >nul 2>nul                     # 新建 0_pin
del /F/Q pin-%date%-%time%.zip  >nul 2>nul   # 删除附件
echo.
pause
exit

:onepin
7z a pin-%date%-%time%.zip .\0_pin\*.*         
# 使用 7zip 压缩文件作为邮件的附件, 使用当前时间作为文件名

set to=reception1@163.com
blat %mail% -to %to%  -attach ".\pin-%date%-%time%.zip" -charset Gb2312 -subject %title%  -server %server% -f %from% -u %user% -pw %pass%

set to=reception@sina.com
blat %mail% -to %to%  -attach ".\pin-%date%-%time%.zip" -charset Gb2312 -subject %title%  -server %server% -f %from% -u %user% -pw %pass%

echo. >  1_write.txt
xcopy /s/e/y/r .\0_pin\*.* .\pin_bak >nul 2>nul
echo.
rd /S/Q .\0_pin  >nul 2>nul
md 0_pin >nul 2>nul
del /F/Q pin-%date%-%time%.zip  >nul 2>nul
echo.
pause
exit

为了确保时间格式正确, 在 win7 中需要做如下设置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

需要发邮件的时候, 可以按照以下三步:
1 把附件放进 0_pin 目录中,若无附件可以不放.
2 打开 1_write.txt 写邮件正文
3 双击 2_SentMail 按照提示写上邮件标题,然后输入 y 表示发送附件,输入 n 表示不发送附件.

pin_bak 中是附件的副本.

使用截图如下:
在这里插入图片描述
在这里插入图片描述
把 Auto_Mail 放在 U 盘中, 里面的批处理也可以正常使用.

至此,我们实现了 blat 的半自动发送(毕竟邮件标题还是手动输入的),如果想要全自动发送的话,对上面的批处理文件修改,然后配合 win7 的任务计划功能即可.

注意:
邮件的标题可以使用中文,英文,符号,但是不要使用空格,否则会报错如下:
在这里插入图片描述
看这句话: Blat saw and processed these options, and was confused by the last one…
大义是说: Blat 看到并且处理了这些选项,并且对最后一个选项感到困惑
这一句:-subject Do not understand argument: 2019.09.20
----------------------------不理解--------参数-----2019.09.20
Blat 不理解 2019.09.20 这个参数

我们写的标题是 测试邮件 2019.09.20, “测试邮件” 和 "2019.09.20"之前有空格. Blat看到这个空格之后,以为空格后面的 2019.09.20 是参数
但这并不是符合 blat 规则的参数,所以报错了.

有些电脑使用的是精简版的 windows 系统,可能精简掉了某些 dll 文件,所以在使用的时候会报错,提示 7z 无法使用.此时可以从 7z 的安装目录中把 dll 文件复制到 blat 所在的目录即可正常发送邮件了.
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值