SMTP是一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把E—mail寄到收信人的服务器上了,整个过程只需要几分钟。SMTP服务器是遵循SMTP协议的发送邮件服务器,用来发送或中转用户发出的电子邮件。
本文作者原创,转载请附上文章出处与本文链接。
程序暂时闭源,但提供免费,版本也会一直更新。目前正在测试阶段,首发邮件、功能都已实现、其余更加个性化的功能也会陆续更新。
本文分为两个部分,一部分是项目说明、一部分是测试项目、一部分是部分开源代码。
QT SMTP发送邮件(封装库)目录
1、项目说明
软件支持 126、139、QQ、阿里等主流邮箱
软件支持 TcpConnection、SslConnection、TlsConnection方式发送邮件
软件接下来的更新目标 2021年10月底更新构建附件,提供支持发送附件功能
软件接下来的更新目标 2021年11月底更新发送邮件内容自定义、包括字体颜色、格式、等加自由的个性化设置
如果大家使用过程中发现问题,请留言 看到会及时更新解决。
2、测试项目
2.1 测试软件截图
2.2 部分源码
.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include "qt_email_dll.h"
#include "QT_Email_Dll_global.h"
#pragma execution_character_set("utf-8")
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
int ierrorCode = 0;
QString strText ="";
QT_Email_Dll Q_EmailDll;
//strText = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$";
strText = "[a-zA-Z0-9-_|a-zA-Z\.vip]+@[a-zA-Z0-9-_]+\\.[a-zA-Z]+";
ierrorCode = Q_EmailDll.OnInitDialog("xxxxx@qq.com","xxxxxpw","xxxxx@qq.com","xxxxx","xxxxx@qq.com","xxxxx",ui->textEdit->toPlainText(),strText);
if(ierrorCode != 0)
{
qDebug() << "Parameter error" << ierrorCode;
return;
}
ierrorCode = Q_EmailDll.InitDreamBeginsEmail("smtp.qq.com",587,0);
if(ierrorCode != 0)
{
qDebug() << " code error"<< ierrorCode;
return;
}
qDebug() << " Email Successful" ;
}
3、部分源代码
/**
* @fn OnInitDialog(QString EName, QString EPwd, QString ESender, QString ESenderName, QString ERecipient, QString ETitle, QString ETextData)
* @brief Initialize Input Parameters
* @param EName [IN] - Server EmailName
EPwd [IN] - Server EamilPassword
ESender [IN] - The Sender
ESenderName [IN] - The Sender Email
ERecipient [IN] - The Recipient
ETitle [IN] - Email Title
ETextData [IN] - Email Content
ERegExp [IN] - Email Rules
* @return return Success 0; Fail, return Error Srever -1; return Error UserLogin -2; return Error EmailSend -3;
*/
int OnInitDialog(QString EName, QString EPwd, QString ESender, QString ESenderName, QString ERecipient, QString ETitle, QString ETextData, QString ERegExp);
/**
* @fn InitDreamBeginsEmail(QString strEmail, int iPort, int Connection)
* @brief Initialization Parameter Connection Email
* @param strEmail [IN] - Server smtp.qq.com smtp.163.com smtp.126.com smt.sina.com smtp.sohu.com smtp.139.com smtp.189.com
iPort [IN] - Port 25 465 587
Connection [IN] - connection 0 TcpConnection 1 SslConnection 2 TlsConnection
* @return return Success 0; Fail, return Error Srever -1; return Error UserLogin -2; return Error EmailSend -3;
*/
int InitDreamBeginsEmail(QString strEmail, int iPort, int Connection);
/**
* @fn Validation(QString QStr, QString RegExp)
* @brief Email Check
* @param QStr [IN] - Email
* @param RegExp [IN] - ValidationRules
* @return return Correct 0; return Error 1;
*/
int Validation(QString QStr, QString RegExp);
4、资源文件
完整测试项目地址:
https://download.csdn.net/download/qq_37529913/24092280
依赖文件下载:
https://download.csdn.net/download/qq_37529913/24093884