当前位置: 首页 > news >正文

《QT实用小工具·十二》邮件批量发送工具

1、概述
源码放在文章末尾

该项目实现了邮件的批量发送,如下图所示:
在这里插入图片描述

项目部分代码如下所示:

#ifndef SMTPCLIENT_H
#define SMTPCLIENT_H#include <QtGui>
#include <QtNetwork>
#if (QT_VERSION >= QT_VERSION_CHECK(5,0,0))
#include <QtWidgets>
#endif
#include "mimemessage.h"class SmtpClient : public QObject
{Q_OBJECT
public:enum AuthMethod {AuthPlain,AuthLogin};enum SmtpError {ConnectionTimeoutError,ResponseTimeoutError,AuthenticationFailedError,ServerError,    // 4xx smtp errorClientError     // 5xx smtp error};enum ConnectionType {TcpConnection,SslConnection,TlsConnection       // STARTTLS};SmtpClient(const QString &host = "locahost", int port = 25, ConnectionType ct = TcpConnection);~SmtpClient();const QString &getHost() const;void setHost(QString &host);int getPort() const;void setPort(int port);const QString &getName() const;void setName(const QString &name);ConnectionType getConnectionType() const;void setConnectionType(ConnectionType ct);const QString &getUser() const;void setUser(const QString &host);const QString &getPassword() const;void setPassword(const QString &password);SmtpClient::AuthMethod getAuthMethod() const;void setAuthMethod(AuthMethod method);const QString &getResponseText() const;int getResponseCode() const;int getConnectionTimeout() const;void setConnectionTimeout(int msec);int getResponseTimeout() const;void setResponseTimeout(int msec);QTcpSocket *getSocket();bool connectToHost();bool login();bool login(const QString &user, const QString &password, AuthMethod method = AuthLogin);bool sendMail(MimeMessage &email);void quit();protected:QTcpSocket *socket;QString host;int port;ConnectionType connectionType;QString name;QString user;QString password;AuthMethod authMethod;int connectionTimeout;int responseTimeout;QString responseText;int responseCode;class ResponseTimeoutException {};void waitForResponse();void sendMessage(const QString &text);signals:void smtpError(SmtpError e);};#endif // SMTPCLIENT_H

源码下载

http://www.lryc.cn/news/331905.html

相关文章:

  • 4.2总结
  • ArcGIS 10.8中文版详细安装教程(附安装包)
  • 什么是EL表达式?怎么使用?
  • 基于php医院预约挂号系统
  • Java NIO详解
  • InstantID作者的风格保持新项目InstantStyle发布,一个强化版的IPapadter来了!
  • 【Java程序员面试专栏 综合面试指南】5年资深程序员面试指南
  • echart 仪表盘实现指针的渐变色及添加图片
  • C#面试题目含参考答案(一)
  • 【Canvas技法】图解绘制圆弧的重要函数 arc(x,y,r,startAngle,endAngle,clockWise)
  • vulhub中Apache Solr 远程命令执行漏洞复现(CVE-2019-0193)
  • 水泥5G智能制造工厂数字孪生可视化平台,推进水泥行业数字化转型
  • vue 一个简单实例化Vue.js 是一个流行的前端框架,如何创建一个基本的计数器应用
  • 1.k8s架构
  • 【Linux】详解动态库链接和加载对可执行程序底层的理解
  • 中文Mistral模型介绍(Chinese-Mistral)——中文大语言模型
  • yolo v5 中 letterbox对不规则矩形框的输入调整
  • STL是什么?如何理解STL?
  • 【Spring篇】Spring IoC DI
  • Python语言例题集(010)
  • redis---主从复制
  • 搜索引擎-03-搜索引擎原理
  • mysql语句学习
  • 【Apache Doris】周FAQ集锦:第 1 期
  • Windows创建远程线程学习
  • 使用c语言libexpat开源库解析XML数据
  • 51单片机入门_江协科技_19~20_OB记录的笔记
  • 基于k8s的高性能综合web服务器搭建
  • Folder Icons for Mac v1.8 激活版文件夹个性化图标修改软件
  • Gitee上传私有仓库