qt_demoe/emailtool/frmemailtool.cpp

105 lines
2.8 KiB
C++
Raw Normal View History

2019-11-21 06:28:56 +00:00
#pragma execution_character_set("utf-8")
#include "frmemailtool.h"
#include "ui_frmemailtool.h"
#include "qfiledialog.h"
#include "qmessagebox.h"
#include "sendemailthread.h"
frmEmailTool::frmEmailTool(QWidget *parent) : QWidget(parent), ui(new Ui::frmEmailTool)
{
ui->setupUi(this);
this->initForm();
}
frmEmailTool::~frmEmailTool()
{
delete ui;
}
void frmEmailTool::initForm()
{
ui->cboxServer->setCurrentIndex(1);
connect(SendEmailThread::Instance(), SIGNAL(receiveEmailResult(QString)),
this, SLOT(receiveEmailResult(QString)));
SendEmailThread::Instance()->start();
}
void frmEmailTool::on_btnSend_clicked()
{
if (!check()) {
return;
}
2019-11-26 02:01:27 +00:00
SendEmailThread::Instance()->setEmailTitle(ui->txtTitle->text());
2019-11-21 06:28:56 +00:00
SendEmailThread::Instance()->setSendEmailAddr(ui->txtSenderAddr->text());
SendEmailThread::Instance()->setSendEmailPwd(ui->txtSenderPwd->text());
SendEmailThread::Instance()->setReceiveEmailAddr(ui->txtReceiverAddr->text());
//设置好上述配置后,以后只要调用Append方法即可发送邮件
SendEmailThread::Instance()->append(ui->txtContent->toHtml(), ui->txtFileName->text());
}
void frmEmailTool::on_btnSelect_clicked()
{
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::ExistingFiles);
if (dialog.exec()) {
ui->txtFileName->clear();
QStringList files = dialog.selectedFiles();
ui->txtFileName->setText(files.join(";"));
}
}
bool frmEmailTool::check()
{
if (ui->txtSenderAddr->text() == "") {
QMessageBox::critical(this, "错误", "用户名不能为空!");
ui->txtSenderAddr->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 frmEmailTool::on_cboxServer_currentIndexChanged(int index)
{
if (index == 2) {
ui->cboxPort->setCurrentIndex(1);
ui->ckSSL->setChecked(true);
} else {
ui->cboxPort->setCurrentIndex(0);
ui->ckSSL->setChecked(false);
}
}
void frmEmailTool::receiveEmailResult(QString result)
{
QMessageBox::information(this, "提示", result);
}