QT---邮件发送

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

最近用到了这个功能,用于验证登陆~为此在网上找了好久,发现这方面的问答并不多!唯独这篇的解答实在。原文传送

1、首先选定自己的发送方的邮箱,无论是163还是qq邮箱等,首先都得开通SMTP服务;以163为例:

这里写图片描述
开启之后会收到一个授权码(自己设置的),在之后的登陆处使用的并不是邮箱密码,而是这个授权码。

2、准备好sendemailapi文件夹放置项目源文件目录下,里面存放的公开的第三方的支持发送附件和富文本的MIME协议文件,拖进一个PushButton用以测试,右击项目文件点击“Add Existing Directory” 把sendemailapi添加进来。记得添加–>这里写图片描述

这里写图片描述

3、至于这个槽怎么写 ,上面那篇文章写的很清楚了,Qt5 版本可能不支持toAscii(),可以用toLatin1()代替。
4、

 SmtpClient smtp("smtp.163.com",
                    25,
                   SmtpClient::TcpConnection);// SmtpClient::SslConnection
    smtp.setUser("*******@163.com");
    smtp.setPassword("");
    //依次是服务器,端口,传输协议,邮箱名,以及上面提到的授权码
//构建邮件主题,包含发件人收件人附件等.
MimeMessage message;
message.setSender(new EmailAddress("*******@163.com"));

//逐个添加收件人
    message.addRecipient(new EmailAddress("×××××××@163.com"));//添加多个可利用循环
//构建邮件标题
message.setSubject("××××××");

//构建邮件正文
//HTML格式

// MimeHtml text;
// text.setHtml(ui->txtContent->toHtml());

//如果直接发送简单文本,使用以下方法
   MimeText text;
   text.setText("");

message.addPart(&text);

//构建附件
QString atta="";
if (atta!=""){
    QStringList attas=atta.split(";");
    foreach (QString tempAtta, attas) {
        QFile *file=new QFile(tempAtta);
        if (file->exists()){
            message.addPart(new MimeAttachment(file));
        }
    }

}

if (!smtp.connectToHost()){
    QMessageBox::critical(this,"错误","服务器连接失败!");
    return;
}
if (!smtp.login()){
    QMessageBox::critical(this,"错误","用户登录失败!");
    return;
}
if (!smtp.sendMail(message)){
    QMessageBox::critical(this,"错误","邮件发送失败!");
    return;
}else{

    QMessageBox::information(this,"错误","邮件发送成功!");
}
smtp.quit();

sendemailapi文件下载


qt5发送邮件 要做一个监测软件,出问题时需要发送一封邮件,所以最近就在网上找了下qt5怎么发邮件,下面贴出方法(代码部分是网上找的一个,自己测试可以使用,直接拷过去就可以了)。 基本原理就是使用telnet通过smtp协议来发送邮件。先简单说下telnet和smtp。 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。smtp(simple mail tran... 阅读详情

相关推荐

QT发送邮件/验证

登录/注册一个163邮箱,在设置里面打开SMTP服务,系统会为你生成一个授权码(是一个乱七八糟的字符串),将授权码记下 打开QT项目中的.pro文件,加入一行 QT+=network 创建一个Smtp类如下: //smtp.h 头文件 #ifndef SMTP_H #define SMTP_H #include<QByteArray> #include<QString> #include<QTcpSocket> class Smtp { public: .

qq_41544842的博客 5629

vs2010+qt5.5.0+qtcreator4.4.1+qwt6.1.4.zip

可能有人需要使用qwt的库来画图,但是网上关于qwt库的配置多种多样,但是有的qwt控件不出现,有的无法编译,本人使用vs2010+qt5.5.0+qtcreator4.4.1+qwt6.1.4来配置,过程清晰简单。

C++使用SMTP协议实现简易的邮件发送功能(QT

开启过程:登录163邮箱→点击设置→将上图的IMAP/SMTP服务和POP3/SMTP服务都开启,在开启IMAP/SMTP服务过程中有登录授权码,需要复制下来,后期SMTP登录需要使用到。

c51LOSER的博客 2312

Qtqt5.12.11注册不了?解决办法-实测

再根据其他教程下载好qt5.12.11的时候 发现不能注册,或者注册不成功,一些教程说断网重新进,或者点击skip跳过,自己也没成功 就像下面这样,不成功示范, 成功示范在后面 1.打开安装界面 ,没有账号,点击sign up注册 2.输入信息 点login 3.输入刚才的账号 4.发现还是失败的 经过一波探索 下面才是正确步骤 1,不是没账号吗?咱们去官网注册,点小头像,你们都会 2.创建自己的账号。这里一般没啥问题,错了就多试试几次,可能是验...

m0_57168310的博客 2万+

Qt5.5 使用smtp发邮件的各种坑

本人刚开始学习C++,用的是Qt5.5的IED,经过了两天的学习和查找资料,终于成功发了第一封邮件。以163邮箱为例,简单总结一下。 1、设置邮箱 这一步比较关键,要开通smtp服务,在开通的过程中会让你输入一个邮箱客户端授权码,这个才是你后面要用到的密码,而不是你登陆邮箱的密码; 2、找代码 也许你会问我,为什么不自己写呢?还是不太懂smtp,先看看别人的怎么写。 先了...

weixin_30633507的博客 644

QT开发的邮箱系统一般错误的原因

常见邮件发送失败原因分析以及解决方法2009-11-03 15:24一.发到 sina.com 的邮件会被退回 我发到 sina 的邮件会被退回,并提示"remote server said: 553 Spam Mail http://mail.sina.com.cn/FAQ.html";错误,怎么办? 访问http://mail.sina.com.cn/FAQ.html我们可以得知,sina进行

HalsonHe的专栏 9701

qt在线安装登陆账户显示验证失败

退出,选择用管理员身份打开就可以了。

qq_52898168的博客 6360

Qt 实现简单邮件发送

#ifndef SMTP_H #define SMTP_H #include #include #include #include #include #include #include #include #include #include #include #include #include class Smtp : public QObject { Q_OB

Floating_clouds的专栏 1万+

QT5 使用163邮箱发送邮件

最近在用QT写一点东西,想发送邮件。查了一些资料,发现没有官方的库,好多前辈都是推荐使用sendemailapi,但是这个网站现在已经不提供下载了,在网上也没有找到可以免费下载的这个库的地方。 借鉴的几篇文章如下 Qt5.5 使用smtp发邮件的各种坑 所以研究了一下smtp的原理,自己写了一个简单的smtp类,跟大家分享一下。 先说一下实现的功能:QT5.5(MSVC_x64) 使用16

wangdeyu1994的博客 5976

qt发送邮件程序

将这个几个服务打开,并且增加一个授权码,授权码就是你通过smtp登录邮箱的密码。通过qt实现发送邮件,使用smtp进行发送。测试telent是否可用。打开cmd命令窗口,输入telnet。代码部分就是通过smtp登录邮箱并且发送邮件。首先我们需要打开邮箱的smtp协议,以163邮箱为例。然后需要将我们的电脑打开telnet功能。将telent这个服务勾选上然后点击确定。好了,然后测试下我们的程序。若弹出这个窗口则说明可用。首先打开电脑的控制面板。选择启用或关闭功能。...

家俊的博客 2749

Qt发送邮件

翻到一个在github上,qt通过smtp发送邮件的项目。感觉以后会有用。 https://github.com/bluetiger9/SmtpClient-for-Qt 项目是老项目,不过稍微改动一下也可以在Qt5上面运行。

joyopirate的博客 1414

Qt中使用SmtpClient发送邮件

前言前言邮件发送功能是一个非常常规的功能,Qt中貌似没有提供直接发送邮件的库,基于此,本文介绍一个发送邮件的库,用起来还不错。下载下载:在Qt发送邮件的库。-C++文档类资源-CSDN下载发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送更多下载资源、学习资料请访问CSDN下载频道.编译常规编译,没什么值得注意的。使用pro中引入库文件。......

千里小马哥的博客 1016

使用Qt发送电子邮件

Qt中,我们可以使用Qt邮件模块来发送电子邮件。以下是一个示例程序,演示了如何使用Qt发送电子邮件。请注意,上述示例中的SMTP服务器、端口、发件人和收件人的详细信息需要根据您自己的情况进行相应更改。首先,我们需要在Qt项目文件(.pro)中添加邮件模块的依赖。以上代码演示了如何使用Qt发送电子邮件。您可以根据自己的需求进行进一步的定制和调整。然后,我们可以编写发送电子邮件的函数。希望这可以帮助到您!如果您有任何其他问题,请随时提问。最后,我们可以在Qt应用程序的适当位置调用。函数来发送电子邮件

2301_79366106的博客 1301

使用Tcp发送smtp邮件(以Qt为例)

使用Tcp发送smtp邮件(以Qt为例) 文章目录前言分析准备工作用Tcp连接到smtp服务器代码详细解释如果你只想复制粘贴请直接看这里发送邮件测试封装demo 前言   有时候我们想在自己的应用里添加发邮件的功能,但是很多比较底层的编程语言是不自带直接发邮件的函数的,所以使用这类编程语言要发邮件就要自己实现发邮件的功能。下面以Qt为例写一个发送邮件的demo。如果是急着用发送邮件的功能就直接翻到...

nicedante的博客 5887

QT开发-邮件发送工具

其实说白了,无非就是smtp协议的使用,这个是国际通用的标准,所以QQ邮箱和163邮箱都可以用,都可以互发,来自百度百科的解释:SMTP目前已是事实上的在Internet传输E-Mail的标准,是一个相对简单的基于文本的协议。一直想用QT实现一个调用最底层socket通信来实现的邮件发送程序,以前用C#写过,微软都封装好的,不知道底层是如何实现的,只知道调用方法,这次用C++实现了下,参考了很多网上的例子。2:支持富文本发送,可以发送带有HTML格式的文本。1:支持主流邮箱例如163邮箱QQ邮箱的发送

hw5230的博客 1418

QT 实现发送邮件功能

这个示例代码使用了Qt提供的QTcpSocket和QSslSocket类来完成与SMTP服务器的交互。首先建立TCP连接,然后发送EHLO命令并接收服务器的响应,之后通过STARTTLS命令启动加密通道,建立加密套接字。接着进行认证,将发件人和收件人设置为需要发送邮件的地址,最后发送邮件内容,并在末尾添加一个点号表示邮件内容结束。当然,这只是一个简单的示例代码,实际上还需要处理一些错误情况,比如服务器返回错误响应的情况。并且,在实际使用中,需要将用户名和密码等敏感信息存储在安全的地方,以避免泄露。

hw5230的博客 2655

使用Qt发送带附件的电子邮件

Qt是一个跨平台的C++应用程序框架,广泛用于开发图形用户界面(GUI)程序。它提供了丰富的API,允许开发者创建从简单的桌面工具到复杂的多平台应用程序。Qt也支持包括数据库、网络、多线程和XML等多种技术。MIME(Multipurpose Internet Mail Extensions)协议,是一种电子邮件数据格式标准。它最初是为了突破互联网早期的7位ASCII编码限制,使得邮件系统能够处理非文本内容,如二进制文件、图片、声音和视频等。

weixin_32869687的博客 814
上一篇: 变量名的力量(一)
下一篇: Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
MessyInk
博客等级 码龄10年 136粉丝 1992原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值