知识就是力量——mode-red使用qq邮箱
识就是力量——mode-red使用qq邮箱
- 配置QQ邮箱的步骤:
- 重要提醒:
添加QQ邮箱发送功能到您的Node-RED流程中。
以下是完整的流程配置,包含了QQ邮箱发送功能:
[{"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邮箱发送给您。