手机怎么发送邮件到163邮箱(QT开发-邮件发送工具)

首页教程更新时间:2023-05-15 04:51:03

一直想用QT实现一个调用最底层socket通信来实现的邮件发送程序,以前用C#写过,微软都封装好的,不知道底层是如何实现的,只知道调用方法,这次用C 实现了下,参考了很多网上的例子。

其实说白了,无非就是smtp协议的使用,这个是国际通用的标准,所以QQ邮箱和163邮箱都可以用,都可以互发,来自百度百科的解释:SMTP目前已是事实上的在Internet传输E-Mail的标准,是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确定是存在的),然后消息文本就传输了。可以参见http://baike.baidu.com/link?url=UAahhbpfOatRRHfUpG6jUyrgYgF3Kj7ll2WkJ6104RiAETv-jh-f-Xm1fwWMotrP

项目名称:邮件发送工具

开发环境:XP QT4.7 QT CREATOR2.8 MINGW

已编译通过测试平台:XP、Win7、ubuntu、tiny210、TE6410

技术实现:通过socket通信实现smtp协议,根据应答解析协议并作出处理发送邮件

基本功能:

1:支持主流邮箱例如163邮箱QQ邮箱的发送。

2:支持富文本发送,可以发送带有HTML格式的文本。

3:支持多个附件发送,附件可以是图片。

说明:163邮箱和126邮箱,发送端口都是25,不使用SSL协议,而QQ邮箱必须使用SSL协议,端口为465。如果是QQ邮箱发送的话,前提要在QQ邮箱设置中将smtp协议开通,否则发送不成功,我就困在这里半个小时,结果收到QQ邮箱发过来的一封邮件,内容如下:

你妹啊,默认QQ邮箱没有开启SMTP服务。

手机怎么发送邮件到163邮箱,QT开发-邮件发送工具(1)

运行截图:

手机怎么发送邮件到163邮箱,QT开发-邮件发送工具(2)

手机怎么发送邮件到163邮箱,QT开发-邮件发送工具(3)

粗略步骤:

第一步:布局好界面,控件命名好,建议用pascal命名法。

第二步:准备好sendemailapi文件夹,里面存放的公开的第三方的支持发送附件和富文本的MIME协议文件。添加到项目中。

第三步:实例化邮件发送对象

SmtpClient smtp(ui->cboxServer->currentText(), ui->cboxPort->currentText().toInt(), ui->ckSSL->isChecked()?SmtpClient::SslConnection:SmtpClient::TcpConnection); smtp.setUser(ui->txtSender->text()); smtp.setPassword(ui->txtSenderPwd->text());

第四步:构建邮件主题,包含发件人收件人附件等

MimeMessage message; message.setSender(new EmailAddress(ui->txtSenderAddr->text())); //逐个添加收件人 QStringList receiver = ui->txtReceiverAddr->text().split(';'); for (int i = 0; i < receiver.size(); i ){ message.addRecipient(new EmailAddress(receiver.at(i))); } //构建邮件标题 message.setSubject(ui->txtTitle->text()); //构建邮件正文 MimeHtml text; text.setHtml(ui->txtContent->toHtml()); // //如果直接发送简单文本,使用以下方法 // MimeText text; // text.setText("测试简单文本发送!"); message.addPart(&text); //构建附件 QString atta=ui->txtAtta->text(); 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();

【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】

点击这里:

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
蓝迈政治app
蓝迈政治app
下载
优医CARE
优医CARE
下载
一代天骄
一代天骄
下载
夺股奇兵
夺股奇兵
下载
人力资源管理信息系统v5.20官方版
人力资源管理信息系统v5.20官方版
下载
跟踪圣诞老人
跟踪圣诞老人
下载
环球云展iOS
环球云展iOS
下载
安徽家具网
安徽家具网
下载
大师六爻
大师六爻
下载
逃生益智挑战游戏
逃生益智挑战游戏
下载
彩色绵羊
彩色绵羊
下载
白熊互动绘本电脑版
白熊互动绘本电脑版
下载
城镇建造模拟中文版
城镇建造模拟中文版
下载
美食生命体2修改版
美食生命体2修改版
下载
中达教育
中达教育
下载
疯狂2048
疯狂2048
下载