Win7 中使用 blat 自动发邮件

混江龙づ霸主 提交于 2019-11-29 23:58:11

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 0a    # 设定颜色,黑底绿字
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        # 获取当前时间
echo. >> 1_write.txt    # 清空
echo "写信时间: %date%-%time%" >> 1_write.txt  # 在邮件正文添加一个时间戳

7z a pin.zip .\0_pin\*.*         # 使用 7zip 压缩文件作为邮件的附件

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  # 备份附件到 pin_bak 目录
del /F/S/Q .\0_pin\*.*                # 删除附件
del /F/Q pin.zip                      # 删除压缩文件
echo.
pause
exit

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

set to=reception@sina.com
blat %mail% -to %to%  -attach "./pin.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
del /F/S/Q .\0_pin\*.* 
del /F/Q pin.zip  
echo.
pause
exit

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

pin_bak 中是附件的副本.

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!