当前位置: 首页 > 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

源码下载

相关文章:

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

1、概述 源码放在文章末尾 该项目实现了邮件的批量发送&#xff0c;如下图所示&#xff1a; 项目部分代码如下所示&#xff1a; #ifndef SMTPCLIENT_H #define SMTPCLIENT_H#include <QtGui> #include <QtNetwork> #if (QT_VERSION > QT_VERSION_CHECK(5,0,…...

4.2总结

了解了部分Api的使用并学习了接口的API API API包含了较多种类&#xff08;System,Runtime等&#xff09; System其实就是一个工具类&#xff0c;提供了一些与系统相关的方法 下面有一些常间的System方法 方法名说明public static void exit (int status)终止当前运行的ja…...

ArcGIS 10.8中文版详细安装教程(附安装包)

ArcGIS 10.8中文版详细安装教程&#xff08;附安装包&#xff09; 关键词&#xff1a;ArcGIS 10.8中文版安装 1.概述 ArcGIS Desktop 10.8中文版是由ESRI公司开发的一款专业的地理信息系统&#xff0c;一套完整的桌面GIS软件套件&#xff0c;它包含ArcMap、ArcCatalog、ArcG…...

什么是EL表达式?怎么使用?

文章目录 一、什么是EL表达式1、命令格式&#xff1a;${作用域对象别名.共享数据} 二、EL表达式与作用域对象别名1、JSP文件可以使用的作用域对象2、EL表达式提供作用域对象别名3、EL表达式将引用对象属性写入到响应体4、EL表达式简化版 三、EL表达式与运算表达式四、EL表达式提…...

基于php医院预约挂号系统

摘 要 随着信息时代的来临&#xff0c;过去的管理方式缺点逐渐暴露&#xff0c;对过去的医院预约挂号管理方式的缺点进行分析&#xff0c;采取计算机方式构建医院预约挂号系统。本文通过阅读相关文献&#xff0c;研究国内外相关技术&#xff0c;开发并设计一款医院预约挂号系统…...

Java NIO详解

一、概念 NIO, 即new io&#xff0c;也叫非阻塞io 二、NIO三个核心组件&#xff1a; Buffer数据缓冲区Channel通道Selector选择器 1、Buffer缓冲区 缓冲区本质上是一个可以存放数据的内存块&#xff08;类似数组&#xff09;&#xff0c;可以在这里进行数据写入和读取。此…...

InstantID作者的风格保持新项目InstantStyle发布,一个强化版的IPapadter来了!

之前已经和大家介绍过InstantID相关相关的文章&#xff0c;感兴趣的小伙伴可以点击下面链接进行阅读&#xff5e; ​​​​​​​​​​​​​无缝衔接Stable Diffusion&#xff0c;一张照片几秒钟就能生成个性化图片-InstantID_instant-id 模型-CSDN博客 今天向大家介绍Ins…...

【Java程序员面试专栏 综合面试指南】5年资深程序员面试指南

基础知识对于5年内工作经验的同学考察相对比较多。包括编程语言、计算机网络、操作系统、设计模式、分布式知识、MySQL、Redis这种。其中随着年限的增长,基础知识考察的会越来越少,例如操作系统基本上只在学生阶段考察,计算机网络对于5年经验来说也考察的相对较少。5年以上对…...

echart 仪表盘实现指针的渐变色及添加图片

需求&#xff1a; 在仪表盘中设置指针为渐变色&#xff0c;并在仪表盘中间添加图片。 实现重点&#xff1a; 1、仪表盘指针渐变色的实现 渐变色通过设置pointer的itemStyle属性内的color实现&#xff0c;重点是echart版本&#xff0c;这个原本使用4.8.0的版本不起作用&#xff…...

C#面试题目含参考答案(一)

前言 面试是应聘一个工作岗位的环节,来考察一个人的工作能力与综合素质。在应聘C#程序员或与C#相关岗位时,我们都会被问到一些与.NET、C#、数据库、业务知识或编程思想等问题。本文列举一些问题及提供参考答案,题目(一)。 题目 1、什么是面向对象的三大特性 参考答案:…...

【Canvas技法】图解绘制圆弧的重要函数 arc(x,y,r,startAngle,endAngle,clockWise)

【一图释疑】 【绘制上图用代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>Html5/Canvas中绘制圆弧的重要函数 arc(x,y,r,startA…...

vulhub中Apache Solr 远程命令执行漏洞复现(CVE-2019-0193)

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发&#xff0c;主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler&#xff0c;该模块是一个可选但常用的模块&#xff0c;用于从数据库和其他源中提取数据。它具有一个功能&#…...

水泥5G智能制造工厂数字孪生可视化平台,推进水泥行业数字化转型

水泥5G智能制造工厂数字孪生可视化平台&#xff0c;推进水泥行业数字化转型。水泥5G智能制造工厂数字孪生可视化平台&#xff0c;是水泥行业数字化转型的关键推手。数字孪生平台运用先进的信息技术和数字化手段&#xff0c;实现水泥生产过程的数字化模拟、可视化监控和智能化管…...

vue 一个简单实例化Vue.js 是一个流行的前端框架,如何创建一个基本的计数器应用

当然可以&#xff01;Vue.js 是一个流行的前端框架&#xff0c;用于构建用户界面。下面是一个简单的 Vue.js 例子&#xff0c;演示了如何创建一个基本的计数器应用。 首先&#xff0c;确保你已经在项目中引入了 Vue.js。你可以通过 CDN 引入 Vue.js&#xff0c;或者在项目中安…...

1.k8s架构

k8s集群架构 一个Kubernetes集群至少包含一个控制平面(control plane)&#xff0c;以及一个或多个工作节点(worker node)。控制平面(Control Plane) : 控制平面负责管理工作节点和维护集群状态。所有任务分配都来自于控制平面。工作节点(Worker Node) : 工作节点负责执行由控制…...

【Linux】详解动态库链接和加载对可执行程序底层的理解

一、动静态库链接的几种情况 如果我们同时提供动态库和静态库&#xff0c;gcc默认使用的是动态库。如果我们非要使用静态库&#xff0c;要加-static选项。如果我们只提供静态库&#xff0c;那可执行程序没办法&#xff0c;只能对该库进行静态链接&#xff0c;但程序不一定整体…...

中文Mistral模型介绍(Chinese-Mistral)——中文大语言模型

中文Mistral简介 Chinese-Mistral由清华大学地学系地球空间信息科学实验室开发。 该模型基于Mistral发布的Mistral-7B-v0.1训练得到。首先进行中文词表扩充&#xff0c;然后采用实验室提出的PREPARED训练框架&#xff08;under review&#xff09;在中英双语语料上进行增量预训…...

yolo v5 中 letterbox对不规则矩形框的输入调整

在对数据或特征的处理中&#xff0c;为了避免输入图像或特征&#xff0c;经过resize等等操作&#xff0c;改变了目标特征的尺度信息&#xff0c;一般会引入一些操作&#xff0c;比如&#xff1a; 在特征维度&#xff0c;加入SPP&#xff08;空间金字塔池化&#xff09;&#x…...

STL是什么?如何理解STL?

文章目录 1. 什么是STL2. STL的版本3. STL的六大组件4. 如何学习STL5.STL的缺陷 1. 什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 2. …...

【Spring篇】Spring IoC DI

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Spring系列】 本专栏旨在分享学习Spring MVC的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 前言一、IoC二、…...

Python语言例题集(010)

#!/usr/bin/python3 #在链表的末端插入新的节点。 class Node(): def init(self,dataNone): self.datadata self.nextNone class LinkedList(): def init(self): self.headNone def printList(self):ptrself.headwhile ptr:print(ptr.data)ptrptr.nextdef ending(self,newd…...

redis---主从复制

主从复制是指将一台redis服务器的数据复制到其他redis服务器&#xff0c;也叫主节点和从节点。 一个主节点可以有多个从节点。而每个从节点只能有一个主节点。数据的复制是单向的&#xff0c;只能由主节点到从节点。一般来说&#xff0c;主节点负责写操作&#xff0c;从节点负…...

搜索引擎-03-搜索引擎原理

拓展阅读 搜索引擎-01-概览 搜索引擎-02-分词与全文索引 搜索引擎-03-搜索引擎原理 Crawl htmlunit 模拟浏览器动态 js 爬虫入门使用简介 Crawl jsoup 爬虫使用 jsoup 无法抓取动态 js 生成的内容 Crawl WebMagic 爬虫入门使用简介 webmagic 全网搜索引擎架构与流程如何…...

mysql语句学习

SQL Select语句完整的执行顺序&#xff1a; 1、from子句组装来自不同数据源的数据&#xff1b; &#xff08;先join在on&#xff09; 2、where子句基于指定的条件对记录行进行筛选&#xff1b; 3、group by子句将数据划分为多个分组&#xff1b; 4、使用聚集函数进行计算&a…...

【Apache Doris】周FAQ集锦:第 1 期

【Apache Doris】周FAQ集锦&#xff1a;第 1 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…...

Windows创建远程线程学习

CreateRemoteThread是一个Windows API函数,它能够创建一个在其它进程地址空间中运行的线程; 下面来简单做一下,配合procexp工具; VC代码如下,我是写到一个菜单单击处理函数中, void CCrrmthView::OnMenuitem32771() {// TODO: Add your command handler code hereHAN…...

使用c语言libexpat开源库解析XML数据

1 libexpat简介 Expat 是一个用 C 语言编写的开源 XML 解析库&#xff0c;以其高性能和小巧的体积著称。Expat 兼容多种操作系统平台&#xff0c;包括但不限于 Windows、Linux、macOS 等。由于其跨平台特性和简单易用的API&#xff0c;Expat 成为了许多C/C程序员解析XML文档的…...

51单片机入门_江协科技_19~20_OB记录的笔记

19. 串口通讯 19.1. 串口介绍&#xff1a; •串口是一种应用十分广泛的通讯接口&#xff0c;串口成本低、容易使用、通信线路简单&#xff0c;可实现两个设备的互相通信。 •单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信&#xff0c;极大的…...

基于k8s的高性能综合web服务器搭建

目录 基于k8s的高性能综合web服务器搭建 项目描述&#xff1a; 项目规划图&#xff1a; 项目环境&#xff1a; k8s&#xff0c; docker centos7.9 nginx prometheus grafana flask ansible Jenkins等 1.规划设计整个集群的架构&#xff0c;k8s单master的集群环境&…...

Folder Icons for Mac v1.8 激活版文件夹个性化图标修改软件

Folder Icons for Mac是一款Mac OS平台上的文件夹图标修改软件&#xff0c;同时也是一款非常有意思的系统美化软件。这款软件的主要功能是可以将Mac的默认文件夹图标更改为非常漂亮有趣的个性化图标。 软件下载&#xff1a;Folder Icons for Mac v1.8 激活版 以下是这款软件的一…...

主流网站/seo教程视频

OS : Ubuntu 18.04.1 LTSDBMS : mysql 8.0.12typesetting : Markdown数据&#xff0c;数据&#xff0c;命根就在数据 ! 操作数据库时&#xff0c;一定要谨慎小心。师万物 的代码看看就好&#xff0c;要有自己的判断。遇到抉择&#xff0c;要不耻上下问。examplestuUbuntu:~$ my…...

做自媒体都有什么网站/国际新闻军事最新消息

Three.js 是一款运行在浏览器中的 3D 引擎&#xff0c;你可以用它创建各种三维场景&#xff0c;包括了摄影机、光影、材质等各种对象。你可以在它的主页上看到许多精彩的演示。不过&#xff0c;这款引擎目前还处在比较不成熟的开发阶段&#xff0c;其不够丰富的 API 以及匮乏的…...

游戏推荐网站怎么做/一键优化表格

云开发&#xff08;微信-小程序&#xff09;笔记&#xff08;十一&#xff09;---- 分页&#xff0c;不简单啊 搜索的分类有单字段&#xff0c;多字段&#xff08;或&#xff09;&#xff0c;多字段&#xff08;并&#xff09;搜索等 1.导入数据集 首先向数据库导入免费数据…...

手机网站建设怎么样/365优化大师软件下载

前言 前面已经讲了 Java 的一些环境搭建、IDE 使用、变量及数据类型、操作符、控制流程以及数组操作&#xff0c;今天就来看看 Java 里边的一个核心思想 - 面向对象编程。 什么是面向对象&#xff1f; 所谓面向对象&#xff0c;是一种通过对象的方式&#xff0c;将现实中的事…...

java电影网站开发视频/重庆森林经典台词罐头

php中static关键字的作用是&#xff1a;1、放在函数内部修饰变量&#xff0c;函数执行完后变量值仍然保存&#xff1b;2、放在类中修饰属性或方法&#xff0c;如果修饰的是类的属性&#xff0c;则保留值&#xff1b;3、放在类的方法中修饰变量&#xff1b;4、修饰全局作用域的变…...

gridlocked wordpress/外贸网络推广经验

大佬&#xff0c;牛&#xff01;&#xff01;&#xff01; 题目&#xff1a;给你一个字符串s1&#xff0c;然后看看有没有s1打乱顺序以后&#xff0c;出现在s2中的可能。我的思路&#xff1a;就是这里千万别想用字符串取比较&#xff0c;方向就错了&#xff0c;其实就是找s2中…...