• 大小: 41KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-22
  • 语言: Html/CSS
  • 标签: QT  邮件发送  socket  

资源简介

项目名称:邮件发送工具 开发环境: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个文件信息

评论

共有 条评论