资源简介
项目名称:邮件发送工具
开发环境:XP+QT4.7+QT CREATOR2.8+MINGW
已编译通过测试平台:XP、Win7、ubuntu、tiny210、TE6410
技术实现:通过socket通信实现smtp协议,根据应答解析协议并作出处理发送邮件
基本功能:
1:支持主流邮箱例如163邮箱QQ邮箱的发送。
2:支持富文本发送,可以发送带有HTML格式的文本。
3:支持多个附件发送,附件可以是图片。
代码片段和文件信息
#include “frmmain.h“
#include “ui_frmmain.h“
#include
#include
#include “sendemailapi/smtpmime.h“
frmMain::frmMain(QWidget *parent) :
QWidget(parent)
ui(new Ui::frmMain)
{
ui->setupUi(this);
}
frmMain::~frmMain()
{
delete ui;
}
void frmMain::on_btnSelect_clicked()
{
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::ExistingFiles);
if (dialog.exec()){
ui->txtAtta->clear();
QStringList files=dialog.selectedFiles();
foreach (QString file files) {
ui->txtAtta->setText(ui->txtAtta->text()+file+“;“);
}
}
}
bool frmMain::Check()
{
if (ui->txtSender->text()==““){
QMessageBox::critical(this“错误““用户名不能为空!“);
ui->txtSender->setFocus();
return false;
}
if (ui->txtSenderPwd->text()==““){
QMessageBox::critical(this“错误““用户密码不能为空!“);
ui->txtSenderPwd->setFocus();
return false;
}
if (ui->txtSenderAddr->text()==““){
QMessageBox::critical(this“错误““发件人不能为空!“);
ui->txtSenderAddr->setFocus();
return false;
}
if (ui->txtReceiverAddr->text()==““){
QMessageBox::critical(this“错误““收件人不能为空!“);
ui->txtReceiverAddr->setFocus();
return false;
}
if (ui->txttitle->text()==““){
QMessageBox::critical(this“错误““邮件标题不能为空!“);
ui->txttitle->setFocus();
return false;
}
return true;
}
void frmMain::on_btnSend_clicked()
{
if (!Check()){return;}
//实例化发送邮件对象
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::criti
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-03-12 19:28 myEmailTools\
文件 3828 2014-03-12 19:02 myEmailTools\frmmain.cpp
文件 444 2014-03-12 19:02 myEmailTools\frmmain.h
文件 10645 2014-03-12 18:51 myEmailTools\frmmain.ui
文件 797 2014-03-03 15:06 myEmailTools\main.cpp
文件 92854 2013-08-01 16:24 myEmailTools\main.ico
文件 8750 2013-07-22 20:33 myEmailTools\main.png
文件 117 2014-03-03 21:30 myEmailTools\main.qrc
文件 37 2013-04-18 10:27 myEmailTools\main.rc
文件 1419 2014-03-03 15:57 myEmailTools\myEmailTools.pro
文件 13350 2014-03-12 19:28 myEmailTools\myEmailTools.pro.user
目录 0 2014-03-03 21:11 myEmailTools\sendemailapi\
文件 531 2014-03-03 16:44 myEmailTools\sendemailapi\emailaddress.cpp
文件 517 2014-03-03 15:58 myEmailTools\sendemailapi\emailaddress.h
文件 299 2014-03-03 16:44 myEmailTools\sendemailapi\mimeattachment.cpp
文件 327 2014-03-03 16:04 myEmailTools\sendemailapi\mimeattachment.h
文件 1150 2014-03-03 16:45 myEmailTools\sendemailapi\mimecontentformatter.cpp
文件 455 2014-03-03 16:04 myEmailTools\sendemailapi\mimecontentformatter.h
文件 445 2014-03-03 16:45 myEmailTools\sendemailapi\mimefile.cpp
文件 297 2014-03-03 15:59 myEmailTools\sendemailapi\mimefile.h
文件 356 2014-03-03 16:45 myEmailTools\sendemailapi\mimehtml.cpp
文件 343 2014-03-03 16:04 myEmailTools\sendemailapi\mimehtml.h
文件 272 2014-03-03 16:46 myEmailTools\sendemailapi\mimeinlinefile.cpp
文件 270 2014-03-03 16:04 myEmailTools\sendemailapi\mimeinlinefile.h
文件 5115 2014-03-03 16:49 myEmailTools\sendemailapi\mimemessage.cpp
文件 1353 2014-03-03 16:04 myEmailTools\sendemailapi\mimemessage.h
文件 1522 2014-03-03 17:49 myEmailTools\sendemailapi\mimemultipart.cpp
文件 1027 2014-03-03 16:01 myEmailTools\sendemailapi\mimemultipart.h
文件 3116 2014-03-03 16:51 myEmailTools\sendemailapi\mimepart.cpp
文件 1419 2014-03-03 16:04 myEmailTools\sendemailapi\mimepart.h
文件 485 2014-03-03 17:49 myEmailTools\sendemailapi\mimetext.cpp
............此处省略6个文件信息
相关资源
- Qt编写调试日志输出工具带网络转发开
- websocket发送裸H264到Html5解码
- 调用电子口岸IC卡/UKEY控件WebSocket方式
- QT使用Opencv库及网络摄像头做的视频监
- libwebsocket的API说明文档
- Qt实现微信气泡聊天效果
- QT实现浏览器+百度地图
- Qt5使用百度地图test
- QT 自定义无边框窗体,支持边缘拖拽
- Qt5-嵌入百度地图
- Qt-Charts动态显示多条折线电压值(实
- esp8266继电器配网+断电保存+可重复配
- libwebsockets win7 vs2017 编译工程
- mupdf-qt已编译库文件
- STM32F103+SIM800C 移植MQTT 连接阿里云服务
- QT5版简易网络调试助手附带编译好的
- 封装QTableView,支持冻结列,绘制表头
- Qt实现二维码扫描器
- Qt局域网聊天工具
- qt指纹采集测试程序
- websocket 聊天室146392
- Signalr即时通讯.Net MVC Demo
- HTML5 WebSocket权威指南(带标签)
- Qt实现浏览器
- qt调用百度地图与js通信源码
- Qt调用百度地图APImap_APP.7z
- nodejs html5 websocket画笔 煎蛋在线画布
- Cpp/Qt/Opencv 识别简单手势剪刀石头布
- Qt加载HTML/js,实现相互调用的小程序
- QT简单的计时器程序
评论
共有 条评论