为后人栽树乘凉系列之Qt5.14.2基于SmtpClient-for-Qt-2.0发送邮件(把第三方库导入到新建项目中)

废话不多说直接上步骤:

一. 先下载这个发送邮件第三方库的代码

去原作者的github主页里下载(https://github.com/bluetiger9/SmtpClient-for-Qt

二. 下载完以后编译原码,获得dll文件

解压以后进入src文件夹,双击SMTPEmail.pro文件,会直接在qt creator中打开,什么都不用动,直接点击编译。

然后来到下面这个目录,从这里可以拿到dll文件和a文件,先复制,待会要用。

三. 新建一个qt项目,把第三方库移植到新项目中

项目新建后先运行一次,这样才会产生【构建】目录

这里是最关键的,一共三步(建议每做完一步就运行一下,这样能方便找到出错的地方)

1. 把发邮件需要的【dll文件】和【a文件】放到新项目的【构建】目录下

把刚刚复制的两个文件粘贴到我们新建项目的【构建】目录下

2. 把发邮件需要的【头文件】放到新项目的指定目录下

头文件放在第三方库的src文件夹下,按类型排序好,方便我们直接全部选中复制

粘贴到我们新项目的代码目录(pro文件在的那个文件夹)下

3. 手动添加【库文件】,让系统自动帮我们修改pro文件

右键选中我们的项目文件夹,点击【添加库】

选外部库

选中我们之前放进去的a文件

点【下一步】,再点【完成】。

然后系统就自动帮我们在pro文件里添加了下面这些路径

解读一下这些代码:意思就是从pro文件为起点,先../往上一层,再进入debug文件夹,然后找到smtpmime2文件(smtpmine2文件就是我们之前放进去的dll文件),这个路径一定要检查是否正确。

完了以后我们复制一下作者写的demo里面的代码到main.cpp里,测试能不能发邮件:

#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
#include <QtCore>
//-------smtp_plugins-----------
#include "smtpclient.h"
#include "mimepart.h"
#include "mimehtml.h"
#include "mimeattachment.h"
#include "mimemessage.h"
#include "mimetext.h"
#include "mimeinlinefile.h"
#include "mimefile.h"
#include "mimebytearrayattachment.h"
//我发的是qq邮箱,所以是下面这种格式
#define SMTP_SERVER "smtp.qq.com"
//发件人名字可以随便取
#define SENDER_NAME "sender"
//发件人邮箱填自己的
#define SENDER_EMAIL "xxxx@qq.com"
//这个授权码需要去邮箱网站里获取(并不是你的qq密码)
#define SENDER_PASSWORD "xxxxx"
//收件人名字随便取
#define RECIPIENT_NAME "receiver"
//收件人邮箱填自己
#define RECIPIENT_EMAIL "xxxx@qq.com"
//-------smtp_plugins-----------

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    MimeMessage message;

    EmailAddress sender(SENDER_EMAIL, SENDER_NAME);
    message.setSender(sender);

    EmailAddress to(RECIPIENT_EMAIL, RECIPIENT_NAME);
    message.addRecipient(to);

    message.setSubject("SmtpClient for Qt - Demo");

    // Now add some text to the email.
    // First we create a MimeText object.

    MimeText text;

    text.setText("Hi,\nThis is a simple email message.\n");

    // Now add it to the mail

    message.addPart(&text);

    // Now we can send the mail
    SmtpClient smtp(SMTP_SERVER, 465, SmtpClient::SslConnection);

    smtp.connectToHost();
    if (!smtp.waitForReadyConnected()) {
        qDebug() << "Failed to connect to host!";
        return -1;
    }

    smtp.login(SENDER_EMAIL, SENDER_PASSWORD);
    if (!smtp.waitForAuthenticated()) {
        qDebug() << "Failed to login!";
        return -2;
    }

    smtp.sendMail(message);
    if (!smtp.waitForMailSent()) {
        qDebug() << "Failed to send mail!";
        return -3;
    }

    smtp.quit();
    w.show();
    return a.exec();
}

代码有了还不行,还需要去邮箱网站里获取【授权码】并且打开smtp服务

一切都填好以后,编译运行一下居然报错了

但是没事,这是小问题,因为我们缺少了发送网络请求需要的文件(获取方式:qt5.14.2网络请求库dll文件下载

下载完以后,把这些库也放到构建目录下

然后继续点击编译运行

大功告成,身心俱疲,打把原神奖励一下自己。

全文免费,制作不易,还请多多点赞三连

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熔岩超美身材巨兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值