当前位置:网站首页>qt send mail program
qt send mail program
2022-08-09 05:53:00 【come on, dude】
通过qt实现发送邮件,使用smtp进行发送.But can't send attachments.(functional research)
First we need to open the mailboxsmtp协议,以163邮箱为例
点击设置按钮
选择pop3选项
Then we need to turn on our computertelnet功能.
首先打开电脑的控制面板
点击程序.
Choose to enable or disable the feature.
将telentCheck this service and click OK.
测试telent是否可用.打开cmd命令窗口,输入telnet
If this window pops up, it means it is available
Turn on these services,And add an authorization code,The authorization code is what you passsmtp登录邮箱的密码.
Preliminary work is ready.
The code part is the passsmtpLog in to your mailbox and send emails.直接看代码.
smtp.h
#ifndef SMTP_H
#define SMTP_H
#include<QByteArray>
#include<QString>
#include<QTcpSocket>
class Smtp
{
public:
Smtp(QByteArray username,QByteArray password);
~Smtp();
void SendData(QByteArray sendIp,QByteArray s_Title,QByteArray s_Content);
QString WaitAndReadData();
private:
QByteArray m_UserName="";
QByteArray m_Password="";
QTcpSocket * m_pSocket=nullptr;
QString m_ReceiverData="";
};
#endif // SMTP_H
smtp.cpp
#include "smtp.h"
#include<QDebug>
Smtp::Smtp(QByteArray username,QByteArray password)
{
if(username.contains("@163"))
{
m_UserName= username;
m_Password = password;
}
else
{
qDebug()<<"Error";
}
}
void Smtp::SendData(QByteArray sendIp, QByteArray s_Title, QByteArray s_Content)
{
m_pSocket=new QTcpSocket();
m_pSocket->connectToHost("smtp.163.com",25,QTcpSocket::ReadWrite); //连接163邮箱
m_pSocket->waitForConnected(1000);
WaitAndReadData();
m_pSocket->write("helo localhost\r\n");
WaitAndReadData();
m_pSocket->write("auth login\r\n");
WaitAndReadData();
m_pSocket->write(m_UserName.toBase64()+"\r\n"); //写入用户名
WaitAndReadData();
m_pSocket->write(m_Password.toBase64()+"\r\n"); //写入密码
WaitAndReadData();
m_pSocket->write("mail from: <"+m_UserName+">\r\n"); //发送的邮箱
WaitAndReadData();
m_pSocket->write("rcpt to: <"+sendIp+">\r\n"); //接收的邮箱
WaitAndReadData();
m_pSocket->write("data\r\n"); //开始写入
WaitAndReadData();
m_pSocket->write("from:<"+m_UserName+">\r\n"); //发送名称
WaitAndReadData();
m_pSocket->write("to:<"+sendIp+">"); //接受名称
WaitAndReadData();
m_pSocket->write("data\r\n");
WaitAndReadData();
m_pSocket->write("Subject:"+s_Title+"\r\n"); //标题
m_pSocket->write("\r\n");
m_pSocket->write(s_Content.append("\r\n")); //内容
m_pSocket->write(".\r\n");
WaitAndReadData();
m_pSocket->write("quit\r\n");
m_pSocket->disconnect();
}
QString Smtp::WaitAndReadData()
{
m_pSocket->waitForReadyRead(1000);
m_ReceiverData = m_pSocket->readAll();
return m_ReceiverData;
}
Smtp::~Smtp()
{
delete m_pSocket;
}
好了,Then test our program.
Smtp smtp("邮箱名称","授权码"); //Use your own email and password //Note the authorization code,Not your password to log in to your email
smtp.SendData("[email protected]","你好","这是一个测试程序");
Email received.
边栏推荐
猜你喜欢
随机推荐
se2clam
【JMeter】jmeter测试 - 上传多个图片/批量上传图片接口 CSV文件参数化方法
untiy 倒计时
sqlserver导入数据类型问题
NFT协议OMNI因重入攻击损失1300ETH
Bismuth sulfide nanorods with CT imaging function | Bismuth sulfide-zinc protoporphyrin composites (PAMAM/Bi2S3 composite nanoparticles)
Xray - powerful vulnerability scanning tools
浅谈单片机Boot的几种自刷新方式
el与data的
金仓数据库能否设置事务自动提交
2022-08-08 第四小组 修身课 学习笔记(every day)
Initials-Letter Query Tool-Word Abbreviation Query Online Tool
磁性核壳四氧化三铁颗粒负载金纳米星|磁性Fe3O4-POSS-COOH|超顺磁四氧化三铁聚多巴胺核壳结构纳米粒子
2022/08/08 学习笔记 (day25)File类
JDBC_PreparedStatement预编译对象
获取开发版安全码SHA1时遇到的报错
2,C#的数据类型
年薪35W的测试工程师被裁亲身经验:不得不听的忠告
Build a "firewall" for safety and carry out firefighting training in Fengzhuang Township, Tongxu County, Henan Province
什么是SIP请求和SIP响应?









