qt5发送邮件

本文介绍如何在Qt5应用程序中通过SMTP协议发送邮件,包括开启telnet客户端,连接邮箱服务器,使用base64编码的用户名和密码登录,以及发送邮件的步骤。示例代码展示了实现过程,并提示注意邮件编码和Qt项目的模块配置。
摘要由CSDN通过智能技术生成

要做一个监测软件,出问题时需要发送一封邮件,所以最近就在网上找了下qt5怎么发邮件,下面贴出方法(代码部分是网上找的一个,自己测试可以使用,直接拷过去就可以了)。

基本原理就是使用telnet通过smtp协议来发送邮件。先简单说下telnet和smtp。

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。smtp(simple mail transfer protocol)则是简单的邮件传输协议。(具体还是自己去找下度娘吧)

然后就是先熟悉一下telnet怎么发送邮件了首先需要打开电脑的telnet功能,先进入到控制面板界面,点击下图(左)中红框部分,然后在下右图中勾选telnet客户端,点击确定,稍等一下就可以了。

 接下来是尝试在telnet中发送邮件:

1.使用telnet连接邮箱服务器,名称的格式基本都是smtp.xxx.com,例如:qq邮箱为smtp.qq.com,163邮箱为smtp.163.com,然后端口为25,如下左图

 

2.连接上之后会打印上右图第一行,然后输入helo sis,这句只是打招呼,收到250回复之后再输入auth login,收到334回复即可输入用户名,这里需要输入base64格式数据,即需要把你的邮箱先base64编码再输入进来,密码也是一样。(如果是qq邮箱需要先到邮箱-->设置里面打开smtp功能并使用授权码当做密码登陆)

3.登陆完成之后即可开始发送邮件了,如下图mail from会显示在收件人的邮件里面,rcpt to为收件人的邮箱地址,如果要向多个人同时发邮件可使用rcpt to多个邮箱(看到网上这么写的,我并没有试过同时向多个人发邮件)写完数据之后以“回车  .  回车”结束,最后回复250 ok即发送成功(下图中有3此报错,其实我连同下面第4次输入的都是同一个邮箱,这里不太明白为什么会报错)

 qt中的实现思路也是如此,下面贴上代码:

先是smtp.c文件:

#include "smtp.h"

Smtp::Smtp(QString smtphost, QString smtpusername, QString smtppass)
{
    this->smtphost = smtphost;
    this->smtpusername = smtpusername;
    this->smtppass = smtppass;
}

bool Smtp::Send(  const QString &to, const QString &subject, const QString &body )
{
    qDebug()<<"####"<<Q_FUNC_INFO;
    bool res = false;
    int waittime = 5 * 1000;
    this->from = smtpusername;
    rcpt = to;
    ErrorMSG.cl
  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值