百灵下载站,热门手游攻略、新游测评、礼包兑换一站式平台
当前位置: 网站首页 资讯中心 软件资讯 正文
软件资讯

AutoHotkey如何用脚本通过SMTP自动发送电子邮件【脚本】 AutoHotkey怎么自动发送邮件

软件资讯 来源:互联网 作者:本站小编 发布时间:2026-07-24 04:26:20
AutoHotkey可通过四种方式自动发邮件:一、调用Windows内置CDO COM对象;二、运行Blat命令行工具;三、生成并执行PowerShell脚本;四、用WinHttp对象调用Mailgun等REST API。

  如果您希望使用AutoHotkey脚本自动发送电子邮件,需借助SMTP协议与外部邮件服务交互。以下是实现该功能的多种可行方法:

一、使用CDO(Collaboration Data Objects)COM对象发送邮件

  CDO是Windows系统内置的邮件组件,无需额外安装依赖,适用于Outlook未运行或仅需轻量发信的场景。它通过系统底层接口调用SMTP服务,支持身份验证和附件添加。

  1、确保目标邮箱SMTP服务器地址、端口、用户名及密码已明确(例如Gmail为smtp.gmail.com:587,需开启应用专用密码)。

  2、在AutoHotkey脚本中创建CDO.Message对象,并设置Configuration属性指向SMTP服务器参数。

  3、使用Fields属性配置认证信息,包括cdoSendUsername、cdoSendPassword、cdoSMTPServerPort等字段。

  4、设置To、From、Subject和TextBody属性,必要时调用AddAttachment方法添加文件路径。

  5、调用Send()方法提交邮件;若返回错误,可捕获Err.Description获取失败原因。

二、调用外部命令行工具(如Blat)发送邮件

  Blat是一款开源命令行SMTP客户端,支持SSL/TLS加密传输,配置灵活且兼容性高。AutoHotkey通过RunWait执行Blat指令,将邮件内容以参数形式传入,规避COM对象权限限制。

  1、下载Blat.exe及其依赖文件(如blat.dll),解压至脚本所在目录或系统PATH路径下。

  2、准备纯文本邮件正文文件(如mailbody.txt),或使用FileAppend动态生成临时内容。

  3、构造Blat调用命令,包含-s参数指定主题、-t收件人、-f发件人、-server SMTP地址、-port端口号、-u用户名、-pw密码等。

  4、若需发送HTML邮件或附件,添加-html参数并配合-body参数指向HTML文件,或使用-attach指定文件路径。

  5、执行RunWait, "blat mailbody.txt " A_Args, , Hide后检查ErrorLevel判断是否成功。

三、调用PowerShell脚本间接发送邮件

  PowerShell自带Send-MailMessage cmdlet,支持现代邮箱服务的TLS 1.2连接与完整SMTP选项。AutoHotkey通过临时生成.ps1文件并调用powershell.exe执行,增强安全性与扩展能力。

  1、构建PowerShell脚本字符串,包含$smtpServer、$from、$to、$subject、$body变量定义,以及$credential = New-Object System.Management.Automation.PSCredential命令创建凭据对象。

  2、使用Send-MailMessage -SmtpServer $smtpServer -Port 587 -UseSsl -Credential $credential -From $from -To $to -Subject $subject -Body $body -BodyAsHtml参数组合发送。

  3、将脚本内容写入临时.ps1文件(如%TEMP%\sendmail.ps1),注意转义双引号与换行符。

  4、调用RunWait, % "powershell.exe -ExecutionPolicy Bypass -File """ A_Temp "\sendmail.ps1""", , Hide。

  5、发送完成后使用FileDelete删除临时.ps1文件,防止凭据残留。

四、使用WinHttp COM对象手动构造HTTP POST请求(适用于Mailgun等API服务)

  部分云邮件服务(如Mailgun、SendGrid)仅提供REST API接口,不开放原始SMTP端口。此时需通过WinHttp.WinHttpRequest.5.1对象向其API endpoint发送JSON格式请求,携带API密钥与结构化邮件数据。

  1、注册Mailgun账户并获取Domain与Private API Key,确认可用的sandbox收件地址。

  2、创建WinHttp.WinHttpRequest.5.1对象,调用Open("POST", "https://api.mailgun.net/v3/YOUR_DOMAIN/messages")建立连接。

  3、使用SetRequestHeader设置Authorization头为"Basic "后接Base64编码的"api:YOUR_PRIVATE_KEY",并设置Content-Type为application/x-www-form-urlencoded。

  4、构造表单数据字符串:from=sender%40YOUR_DOMAIN&to=recipient%40example.com&subject=Test&text=Hello+World。

  5、调用Send()提交请求,检查Status是否为200,ResponseText中含message字段表示成功。

相关资讯 more..
xssousou小说搜搜引擎  小说搜搜官方网址入口
小说搜搜官方网址入口 xssousou小说搜搜引擎在哪里?这是不少网友都关注的,接下来由小编为大家带来小说搜搜官方网址入口 xssousou小说搜搜引擎,感
本站小编 07-24 0
 夸克浏览器如何安装扩展插件_夸克浏览器扩展插件安装大全
夸克浏览器仅PC版支持扩展,需更新至最新版、启用“扩展支持”实验功能并开启开发者模式,方可通过官方精选中心或手动加载解压文件夹安装插件;手机版不支持。如果您尝试
本站小编 07-24 0
蓝海搜书在线阅读官网入口  蓝海搜书官网地址
蓝海搜书官网地址是https: www lanhaizw com ,具备27类目资源划分、语义联想搜索、四档背景色与字体调节、PWA安装及ICP备案齐全等稳定
本站小编 07-24 0
 如何解决Edge浏览器在下载文件时提示安全风险无法保存?
无法安全下载时,点击下载面板中带红×条目右侧的【保留】按钮,再点【仍然保留】即可强制保存文件;若文件被加“ blocked”后缀,需重命名删去该后缀。你在Edg
本站小编 07-24 1