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 ...
随机推荐
- html5--6-2 CSS语法
html5--6-2 CSS语法 实例 学习要点 掌握引入外部样式表方法 插入样式的三种方法 内联样式表(行内) 内部样式表(style中) 外部样式表 创建一个外部样式表 在head中使用link元 ...
- Oracle:exp导出exp-00091问题
今天导出一数据库数据,发现EXP-00091问题: 连接到: Oracle Database 10g Enterprise Edition Release - Production With the ...
- sid, pid, gid
(一) 参考 :https://unix.stackexchange.com/questions/18166/what-are-session-leaders-in-ps 命令: ps xao pid ...
- 常用的Ant风格书写
原文地址 Ant风格,为请求路径的一种匹配方式 通配符 说明 ? 匹配任意一个字符 * 匹配任意字符(包括0个) ** 匹配任意层路径(包括0个) 支持Ant风格 1.spring资源加载 clas ...
- NYOJ6——喷水装置(一)
喷水装置(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述:现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它 ...
- 百度之星资格赛 1003 度度熊与邪恶大魔王(二维dp)
分析 挺好的一道题 dp[i][j]表示打败i颗血j防御力的怪兽需要的最少宝石数 然后就好了,复杂度\(O(n+m*1000*10)\) #include <bits/stdc++.h> ...
- 鉴于spfa基础上的差分约束算法
怎么搞? 1. 如果要求最大值 想办法把每个不等式变为标准x-y<=k的形式,然后建立一条从y到x权值为k的边,变得时候注意x-y<k =>x-y<=k ...
- hdoj1024【DP.最 大 m 字 段 和】(写完我都怕。。。不忍直视。。)
弱弱上路,看了好多题解....[A的] 题意就是求最大m子段和. 我们先用a[1e6+7]存入数据: 定义:DP[ i , j ] 为前 j 个元素的 i 个子段的最大和,且第 i 个子段中包含了元素 ...
- hdoj2952【DFS联通块】
我觉得还是这种不带回溯的直接搜到底的好玩啊!!!但是要注意边界,记得以前四周要空出来的一道题目,被坑了很久,还是wa到比赛结束!!!这道还是基础题 类似的基础题:POJ1562 hdoj1016 po ...
- MongoDb 查看用户名列表 , 修改用户密码
修改用户密码: db.addUser("java","java"); 查看一下所有的用户 , 查看当前Db的用户名 db.system.users.find ...