qt5.5.1+vs2010发送邮件
最近用到了这个功能,用于验证登陆~为此在网上找了好久,发现这方面的问答并不多!唯独这篇的解答实在。原文传送
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("");
//依次是服务器,端口,传输协议,邮箱名,以及上面提到的授权码
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
//构建邮件主题,包含发件人收件人附件等.
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();
qt5.5.1+vs2010发送邮件的更多相关文章
- QT5.4关联VS2010,配置VAssistX关联Qt类
1.参考网站:http://www.kavenblog.com/?p=272 2.下载插件:http://www.qt.io/zh-hans/download-open-source/#section ...
- Qt5.3.2(VS2010)_调试_查看变量值
1.菜单栏 -->控件(W) --> 视图 2.在"Debug"状态下,选择一个变量(或者 按住左键 选择变量及其属性/方法)--> 右键 --> 添加表达 ...
- Qt5.3.2(VS2010)_调试_进入Qt源码
1.必须是 Debug模式 2. http://blog.csdn.net/mayenjoy/article/details/42535789 http://blog.csdn.net/goforwa ...
- Qt5.3.2(VS2010)_调试_遇到的问题
1.(20171124)调试程序 的时候,一直卡住,看到 右下角的进度里面,一直是"Launching Debugger"的状态 ZC: 一直找不到 原因... 尝试了 32位/6 ...
- windows下 qt5&vs2010 在qtCreator下中文乱码
环境:windows2012下 qt5.3.1 & vs2010 在qtCreator3.1.2下中文乱码 解决方法:在相关文件中加入代码 #ifdef Q_OS_WIN32 #if _MSC ...
- Qt5_各种路径
1.Qt5.3.2 -- vs2010 -- OpenGL 1.1.发布时需要的 DLL文件的路径 F:\ZC_software_installDir\Qt5.3.2_vs2010\5.3\msvc2 ...
- Qt532_QWebView做成DLL供VC/Delphi使用_Bug
Qt5.3.2 vs2010 OpenGL ,VC6.0,Delphi7 1.自己继承 类QWebView,制作成DLL 供 VC6/Delphi7 使用 2.测试下来,DLL供VC6使用: 加载&q ...
- Qt532_WebKit_SSL问题
1.打开网页"http://www.baidu.com",它会跳转至"https://www.baidu.com/",使用 SSL了,于是 WebView 出现 ...
- VS2010+Qt5.4.0 环境搭建(离线安装)
原创作者:http://blog.csdn.net/solomon1558/article/details/44084969 前言 因项目需要Qt开发GUI,我根据网上资料及自己的经验整理了搭建vs2 ...
随机推荐
- mysql忘记root用户密码找回步骤
修改或找回root密码步骤1.修改MySQL的登录设置: # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi. 2.重新启动mys ...
- hadoop datanode启动失败(All directories in dfs.data.dir are invalid)
由于hadoop节点的磁盘满了,导致节点死掉,今天对其进行扩容.首先,将原节点的数据拷贝到目标节点下,从而避免数据的丢失,但是在执行hadoop_daemon.sh start datanode后没有 ...
- 频繁GC会造成卡顿
频繁GC会造成卡顿 https://www.cnblogs.com/qcloud1001/p/9525078.html 一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求 ...
- 小K的农场(差分约束)
题目大意 n个点 m条描述 农场 a 比农场 b 至少多种植了 c 个单位的作物. 农场 a 比农场 b 至多多种植了 c 个单位的作物. 农场 a 与农场 b 种植的作物数一样多. 题解 差分约束裸 ...
- 如何在Centos7上安装&使用docker
Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且 ...
- bzoj1925
dp 搬题解~~:http://blog.csdn.net/aarongzk/article/details/44871391 #include<cstdio> using namespa ...
- 使用putty连接虚拟机上的centos提示Network:connection refused
转自:https://yeyuan.iteye.com/blog/1266484 今天早上开机之后,像往常一样使用putty连接linux的时候,突然提示Network:connection refu ...
- 数据类型总结 (C++)
数据类型总结 (C++) 作用 C++ 大小 取值范围 后缀 字符 char 1 -128~127 字符(无符号) unsigned char 1 0~255 宽字符 wchar_t 2 ...
- 024--python re、logging、configparser、hashlib模块
一.re模块 re模块又称正则表达式是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道 语雀: https://www.yuque.com/yuejiangliu/dotnet/ ...