C++使用Poco库发送邮件(使用QQ邮箱的SMTP)

想使用邮箱发送东西而且还想使用C++来实现,那么我们可以使用Poco库啦

Poco库是做什么的呢,简单的来说是 开发网络和基于互联网的应用程序 的库啦

废话不多说,直如正题。


0.关于QQ的smtp配置教程

因为已经有人写好了就直接丢个连接自己跟着做了(

https://jingyan.baidu.com/article/148a1921ca88f10c71c3b1b1.html


1.安装Poco库

输入下面的指令来安装Poco库(ubuntu22)

sudo apt-get install libpoco-dev

2.CMake引入Poco库

# 设置cmake的版本
cmake_minimum_required (VERSION 3.16)

project ("Demo")

# 使用C++20
set(CMAKE_CXX_STANDARD 20)

# 找到Poco的NetSSL部分
find_package(Poco REQUIRED COMPONENTS NetSSL)

# 指定最终的可执行文件的位置
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_ROOT_NODE}/bin)

# include到src
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src SRC_LIST)
add_executable (${PROJECT_NAME} ${SRC_LIST})

# 链接Poco::NetSSL到本项目中
target_link_libraries(${PROJECT_NAME} PUBLIC Poco::NetSSL);

项目结构如下 :


3.编码

代码如下

#include <string>
#include <Poco/Net/MailMessage.h>
#include <Poco/Net/SMTPClientSession.h>
#include <Poco/Net/SecureSMTPClientSession.h>
#include <Poco/Net/NetException.h>

int main(int argc, char* argv[])
{
    std::string smtp_server { "smtp.qq.com" };
	int port { 25 }; // SMTP端口
	std::string 
        sender { "1145141919810@qq.com" }, // 这里填你的qq邮箱(发送方)
	    recipient { "9961@qq.com" }, // 这个是接收方的邮箱
	    subject { "我是标题" }, // 这个是邮箱的标题
	    content { "这是C++的Poco库的SMTP" }, // 这个是邮箱的内容
        auth_code { "wahrtdu853svhh" }; // 这个是授权码
	try
	{
		Poco::Net::MailMessage message;
		message.setSender(sender);
    message.addRecipient(Poco::Net::MailRecipient(Poco::Net::MailRecipient::PRIMARY_RECIPIENT, recipient));
        message.setSubject(subject);
		message.setContent(content);

		Poco::Net::SecureSMTPClientSession smtp(smtp_server, port);

		smtp.login(Poco::Net::SMTPClientSession::LoginMethod::AUTH_LOGIN, sender, auth_code);

        smtp.sendMessage(message);
        
        // 关闭SMTP
		smtp.close();
	} catch (Poco::Net::NetException& e) {
		std::cerr << "error: " << e.displayText() << std::endl;
		return 1;
	}
	std::cout << "email sent successfully!" << std::endl;

	return 0;
}

编译通过发送成功就是完事了(

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值