node-red教程 8.2 node-red收发邮件(基于QQ邮箱)

  在一台联网的设备上,node-red可以使用邮箱控件来收发邮件。网上有很多教程都是基于外国的邮箱,这里介绍一个基于QQ邮箱的案例。

8.2.1 邮箱控件简介

  输入邮箱控件
  从IMAP服务器收到一封电子邮件,如果邮件未读,则重复的作为一个msg转发。
  主题可以被载入msg.payload,msg.payload是纯文本。text与HTML可以作为msg.html返回。如果你需要的话,msg.from与msg.date也可以被设置。
  此外,msg.header包含完整的头对象,包括to,cc和其它可能有用的属性。
  邮箱控件使用imap模块。
  注意,节点只从收件箱获取最近的单个邮件,所以要适当地设置轮询时间。
  注意,使用IAMP和SSL端口993。

  在收到的电子邮件中提供的任何附件都可以在msg.attachments属性中找到。这将是一组对象,其中每个对象表示一个特定的附件。对象的格式是:

{
  contentType:        // The MIME content description
  fileName:           // A suggested file name associated with this attachment
  transferEncoding:   // How was the original email attachment encodded?
  contentDisposition: // Unknown
  generatedFileName:  // A suggested file name associated with this attachment
  contentId:          // A unique generated ID for this attachment
  checksum:           // A checksum against the data
  length:             // Size of data in bytes
  content:            // The actual content of the data contained in a Node.js Buffer object
                      // We can turn this into a base64 data string with content.toString('base64')
}

  对于POP3来说,默认的端口号,普通TCP是110,对于SSL是995。对于IAMP来说,普通TCP的端口号是143,SSL是993。
  最大刷新间隔为2147483秒(24.8天)。

  输出邮箱控件
  把msg.payload作为邮件内容,把msg.topic作为邮件主题。
  默认的消息接收者可以在节点中配置,如果它是空白的,那么应该使用msg.to来设置它。对传入消息的属性,如果留下空白,你也可以指定msg.cc或msg.bcc属性。
  你可以选择在payload中设置msg.from,这会覆盖userid的默认值。
  载荷可以是html格式。
  如果有效负载是二进制缓冲区,那么它将被转换为附件。应该使用msg.filename来设置文件名。    msg.description可以添加到正文文本中。
  Msg.attachment可以包含多个附件。
  注意,使用SMTP的SSL端口465。

8.2.2 使用node-red发送邮件

  使用SSL的通用配置如下:
  接收邮件服务器:pop.qq.com,使用SSL,端口号995
  发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587
  账户名:您的QQ邮箱账户名(如果您是VIP帐号或Foxmail帐号,账户名需要填写完整的邮件地址)
  密码:您的QQ邮箱密码
  电子邮件地址:您的QQ邮箱的完整邮件地址
这里写图片描述
  使用node-red与qq邮箱发送/接收邮件
  首先QQ邮箱要设置IMAP/SMTP服务
  点击设置,账户
这里写图片描述
  需要保证IMAP/SMTP服务这一项是开启的
这里写图片描述
  成功开启后,会给一个授权码,需要记住。如果忘记授权码,可以再次生成。
  使用node-red给邮箱发送邮件
  然后在node-red里边拖3个节点
这里写图片描述
  编辑inject节点。
这里写图片描述
  配置邮箱节点。
这里写图片描述
  完成以后部署,然后点击inject的小抽屉
这里写图片描述
  然后调试窗口可以看到信息。
这里写图片描述

  而收件箱也可以看到这封邮件。
这里写图片描述
  邮件也具备抄送和秘密抄送功能,需要修改msg,因此要增加一个函数节点。
这里写图片描述
  邮件的设置。
这里写图片描述
  然后inject与email节点的to信息要清除。
这里写图片描述
这里写图片描述
  部署,然后点击inject的小抽屉,两个邮箱就都可以收到邮件了。
这里写图片描述

8.2.3 使用node-red接收邮件

  如下图连接数据流
这里写图片描述
email的配置
这里写图片描述
  完成以后部署node-red。
  使用其他的邮箱给收件箱发送一个邮件。
这里写图片描述
   在调试窗口就可以看到这个邮件了。
这里写图片描述

8.3 使用邮箱远程控制node-red

  接下来使用我的公司邮箱给QQ邮箱发送请开灯,再用node-red来读取开灯的信息,并发送给串口(假设串口有执行设备)。
  流程如下:
这里写图片描述
  邮箱输入
这里写图片描述
  邮箱内容判断
这里写图片描述
  串口输出
  使用/n截断数据
这里写图片描述
  串口输入略
  串口转邮件的内容,如果收到OK,那么回复灯打开了
这里写图片描述
  发送给邮件
这里写图片描述
  现象:
  给node-red的收件箱发送邮件
这里写图片描述
  node-red收到消息并发送给串口。
这里写图片描述
  串口控制设备完成操作,并回复on OK\n
  node-red收到串口回复,判断数据并发送邮件。
这里写图片描述
  邮箱收到命令的响应。
这里写图片描述

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值