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 ...
随机推荐
- HDU - 1874 畅通工程续(最短路径)
d.已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离. s.最短路径 c.Dijkstra单源最短路 /* Dijkstra单源最短路 权值必须是非负 单源最短路径,Dijkstra算法 ...
- 你真的懂redis吗?
Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行各种刁难.作为一名在互联网技术行业打击过成百上千名[请允许我夸张一下]的资深技术面试官 ...
- 使用Pycharm官方统计代码行插件统计代码总行数
最近有需求,需要统计项目代码的总行数,首先想到了使用Pycharm官方的统计行数插件,发现效果还不错. 官方代码统计插件指导:https://plugins.jetbrains.com/plugin/ ...
- COCOS2DX场景切换特效
cocos2d-x 3.0中场景切换特效比较多,而且游戏开发中也经常需要用到这些特效,来使场景切换时不至于那么干巴,遂这里汇总一下,开发中使用. 百牛信息技术bainiu.ltd整理发布于博客园 场景 ...
- iOS copy/retain/assign
1 深复制:内容拷贝,源对象和副本对象指的是两个不同的对象,源对象引用计数器不变,副本对象引用计数器为1 2 浅复制:指针拷贝,源对象和副本对象指的都是同一个对象,对象引用计数器+1,相当于retai ...
- Synchronized之四:Synchronized的可重入性
本文里面讲的是广义上的可重入锁,而不是单指JAVA下的ReentrantLock. 可重入锁,也叫做递归锁,指的是同一线程外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响.在JAVA ...
- 超实用的JavaScript技巧及最佳实践给
1.数组创建一个随机项 var items = [12,548,'a',2,5478,'foo',8852,,'Doe',2145,119]; var randomItem = items[Math. ...
- 设计模式——模板模式(Template Pattern)
在读Spring源码的时候,发现Spring代码中运用了大量的模板模式,比如根据文件系统目录加载配置文件(FileSystemXmlApplicationContext),类路径加载配置文件(Clas ...
- HDU 5884 Sort (二分+k叉哈夫曼树)
题意:n 个有序序列的归并排序.每次可以选择不超过 k 个序列进行合并,合并代价为这些序列的长度和.总的合并代价不能超过T, 问 k最小是多少. 析:首先二分一下这个 k .然后在给定 k 的情况下, ...
- E20180410-sl
category n. 类型,部门,种类,类别,类目; [逻,哲] 范畴; 体重等级;