使用ESP32-Mail-Client库发送邮件-Arduino中文社区 - Powered by Discuz! Archiver

n1001 发表于 2020-1-29 23:22

使用ESP32-Mail-Client库发送邮件

个人感觉这个库比较强大,能上传附件,可以用来上传日志

库地址
GitHib: https://github.com/mobizt/ESP32-Mail-Client
也可以从IDE下载

部分代码,注释已翻译
SMTPData smtpData;
    //【登录】服务器(服务器地址,端口,账号,授权码)
    smtpData.setLogin("smtp.163.com", 465, "******@163.com", "******");
    //启用【TLS】协议支持,在587端口   
    //smtpData.setSTARTTLS(true);
    //设置【发件人】
    smtpData.setSender("*****", "******@163.com");
    //设置【优先级】(High, Normal, Low or 1 to 5 (1 is highest))
    smtpData.setPriority("High");
    //设置【主题】
    smtpData.setSubject("ESP32 SMTP Mail Sending Test");
    //设置【消息文本】(普通的文本或html)
    smtpData.setMessage("<div style=\"color:#ff0000;font-size:20px;\">Hello World! - From ESP32</div>", true);
    //添加【收件人】,可以添加多个收件人
    smtpData.addRecipient("******@163.com");
    //设置【存储类型】读取附加文件
    //smtpData.setFileStorageType(MailClientStorageType::SPIFFS);
    smtpData.setFileStorageType(MailClientStorageType::SD);
    //添加【附件】,可以添加从闪存文件或二进制数据,文件在SD卡
    //smtpData.addAttachData("firebase_logo.png", "image/png", (uint8_t *)dummyImageData, sizeof dummyImageData); //从内存中
    smtpData.addAttachFile("/hello.txt");//从SD卡中
    //设置一些【自定义消息头】(可选)
    //smtpData.addCustomMessageHeader("Date: Sat, 10 Aug 2019 21:39:56 -0700 (PDT)");
    //【调试】SMTP
    smtpData.setDebug(true);
    //绑定输出发送状态的【回调】函数
    smtpData.setSendCallback(sendCallback);
    //【发送】
    if (!MailClient.sendMail(smtpData)) {
      Serial.println("Error sending Email, " + MailClient.smtpErrorReason());
    }
    //【清空】缓存
    smtpData.empty();

完整的代码可以参照示例(其实是我想偷个懒:lol )
温馨提示:注意那个回调函数,不懂的可以屏蔽掉

运行结果

我用的163邮箱。QQ邮箱还没试过。
记得配置SMTP

guidons 发表于 2020-2-15 16:14

登录163邮箱报了认证错误
Error, identification failed
Error sending Email, identification failed

n1001 发表于 2020-2-19 13:37

guidons 发表于 2020-2-15 16:14
登录163邮箱报了认证错误
Error, identification failed
Error sending Email, identification failed ...

密码是授权码

guidons 发表于 2020-2-19 16:26

我用的还真是授权码。。。

guidons 发表于 2020-2-19 19:03

兄弟我终于成功了原来是端口问题:L

meng91666 发表于 2021-5-7 11:20

guidons 发表于 2020-2-19 19:03
兄弟我终于成功了原来是端口问题

老哥,我也是identification failed ...,请问咋解决啊,我用的QQ邮箱,端口465

Screaming 发表于 2021-6-2 15:56

meng91666 发表于 2021-5-7 11:20
老哥,我也是identification failed ...,请问咋解决啊,我用的QQ邮箱,端口465

解决了吗?我也是这个问题,端口465
页: [1]
查看完整版本: 使用ESP32-Mail-Client库发送邮件