识就是力量------mode-red使用qq邮箱
添加QQ邮箱发送功能到您的Node-RED流程中。
以下是完整的流程配置,包含了QQ邮箱发送功能:
json
[
{
"id": "inject-node",
"type": "inject",
"name": "定时触发器",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "3600",
"crontab": "",
"once": true,
"onceDelay": "1",
"topic": "",
"payload": "",
"payloadType": "date",
"x": 100,
"y": 100,
"wires": [
["http-request-node"]
]
},
{
"id": "http-request-node",
"type": "http request",
"name": "获取天气数据",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "http://api.openweathermap.org/data/2.5/weather?q=Anhui,CN&appid=108e304a55942ac32751b79764d0e4c&units=metric&lang=zh_cn",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"x": 280,
"y": 100,
"wires": [
["function-node"]
]
},
{
"id": "function-node",
"type": "function",
"name": "处理天气数据",
"func": "// 处理天气数据\nif (msg.statusCode === 200) {\n var data = msg.payload;\n \n // 构建通知消息\n msg.payload = {\n title: `安徽天气报告 - ${new Date().toLocaleString()}`,\n message: `城市: ${data.name}\\n天气: ${data.weather[0].description}\\n温度: ${data.main.temp}°C\\n体感温度: ${data.main.feels_like}°C\\n最高温度: ${data.main.temp_max}°C\\n最低温度: ${data.main.temp_min}°C\\n湿度: ${data.main.humidity}%\\n气压: ${data.main.pressure} hPa\\n风速: ${data.wind.speed} m/s\\n能见度: ${data.visibility/1000} km`\n };\n \n // 构建邮件内容\n msg.email = {\n subject: `安徽天气报告 - ${new Date().toLocaleString()}`,\n html: `<h2>安徽天气报告</h2>\n <p><strong>更新时间:</strong> ${new Date().toLocaleString()}</p>\n <p><strong>城市:</strong> ${data.name}</p>\n <p><strong>天气状况:</strong> ${data.weather[0].description}</p>\n <p><strong>当前温度:</strong> ${data.main.temp}°C</p>\n <p><strong>体感温度:</strong> ${data.main.feels_like}°C</p>\n <p><strong>最高温度:</strong> ${data.main.temp_max}°C</p>\n <p><strong>最低温度:</strong> ${data.main.temp_min}°C</p>\n <p><strong>湿度:</strong> ${data.main.humidity}%</p>\n <p><strong>气压:</strong> ${data.main.pressure} hPa</p>\n <p><strong>风速:</strong> ${data.wind.speed} m/s</p>\n <p><strong>能见度:</strong> ${data.visibility/1000} km</p>\n <hr>\n <p><small>此邮件由Node-RED天气监控系统自动发送</small></p>`\n };\n \n // 保留原始数据用于调试\n msg.weatherData = data;\n \n return msg;\n} else {\n msg.payload = `获取天气数据失败: ${msg.statusCode}`;\n msg.email = {\n subject: \"天气数据获取失败\",\n html: `<p>获取天气数据失败,错误代码: ${msg.statusCode}</p>`\n };\n return msg;\n}",
"outputs": 1,
"timeout": "",
"x": 480,
"y": 100,
"wires": [
["debug-node", "email-node"]
]
},
{
"id": "debug-node",
"type": "debug",
"name": "显示结果",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 680,
"y": 100,
"wires": []
},
{
"id": "email-node",
"type": "e-mail",
"name": "发送QQ邮件",
"server": "smtp.qq.com",
"port": "587",
"secure": false,
"tls": true,
"namex": "",
"dname": "",
"x": 680,
"y": 160,
"wires": [
["email-debug-node"]
]
},
{
"id": "email-debug-node",
"type": "debug",
"name": "邮件发送状态",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 860,
"y": 160,
"wires": []
}
]
配置QQ邮箱的步骤:
-
首先需要配置email节点:
- 双击"发送QQ邮件"节点
- 在"服务器"字段输入:
smtp.qq.com
- 端口:
587
- 勾选"TLS"
- 不勾选"SSL"
-
设置QQ邮箱认证:
- 用户名:您的QQ邮箱地址(完整地址,如:123456789@qq.com)
- 密码:不是QQ密码,而是QQ邮箱的授权码
-
获取QQ邮箱授权码:
- 登录QQ邮箱网页版
- 进入"设置" → "账户"
- 找到"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"
- 开启"POP3/SMTP服务"
- 按照提示获取16位授权码
-
设置收件人:
- 在email节点的"收件人"字段填入您要接收邮件的邮箱地址
- 可以设置多个收件人,用逗号分隔
-
邮件主题和内容:
- 主题:
{``{email.subject}}
- 内容选择"使用消息属性":
email.html
- 主题:
重要提醒:
- 授权码不是QQ密码,必须通过QQ邮箱设置页面获取
- 确保您的QQ邮箱已开启SMTP服务
- 建议先测试发送一封邮件确认配置正确
- 邮件节点会自动使用处理天气数据函数中设置的
msg.email
对象
配置完成后,每当定时触发器启动,系统就会获取天气数据并通过QQ邮箱发送给您。