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 盘中, 里面的批处理也可以正常使用.
来源:https://blog.csdn.net/mail8611/article/details/100973393