Skip to content

Commit 1c7df2c

Browse files
committed
added:message notify module and support sms and email
1 parent 4f0498c commit 1c7df2c

21 files changed

+988
-2
lines changed

.github/workflows/debianbuild.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,6 @@ jobs:
6464
cd ..
6565
cd XEngine_Token
6666
make
67-
cd ..
67+
cd ..
68+
cd XEngine_MSGNotify
69+
make

.github/workflows/fedora_build.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,6 @@ jobs:
7979
cd ..
8080
cd XEngine_Token
8181
make
82+
cd ..
83+
cd XEngine_MSGNotify
84+
make

.github/workflows/macbuild.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,7 @@ jobs:
6363
make PLATFORM=mac
6464
cd ..
6565
cd XEngine_Token
66-
make PLATFORM=mac
66+
make PLATFORM=mac
67+
cd ..
68+
cd XEngine_MSGNotify
69+
make PLATFORM=mac

.github/workflows/rockybuild.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,7 @@ jobs:
6767
make
6868
cd ..
6969
cd XEngine_Token
70+
make
71+
cd ..
72+
cd XEngine_MSGNotify
7073
make

.github/workflows/ubuntubuild.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,7 @@ jobs:
8282
make
8383
cd ..
8484
cd XEngine_Token
85+
make
86+
cd ..
87+
cd XEngine_MSGNotify
8588
make

XEngine.sln

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_APPModuleTest", "XE
3838
EndProject
3939
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Token", "XEngine_Module\XEngine_Token\XEngine_Token.vcxproj", "{E17E889F-D826-413F-854E-DBA6000B4DA7}"
4040
EndProject
41+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MSGNotify", "XEngine_Module\XEngine_MSGNotify\XEngine_MSGNotify.vcxproj", "{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}"
42+
ProjectSection(ProjectDependencies) = postProject
43+
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}
44+
EndProjectSection
45+
EndProject
46+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MSGNotify_APPExample", "XEngine_Example\MSGNotify_APPExample\MSGNotify_APPExample.vcxproj", "{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}"
47+
ProjectSection(ProjectDependencies) = postProject
48+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} = {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}
49+
EndProjectSection
50+
EndProject
4151
Global
4252
GlobalSection(SolutionConfigurationPlatforms) = preSolution
4353
Debug|ARM64 = Debug|ARM64
@@ -168,6 +178,30 @@ Global
168178
{E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x64.Build.0 = Release|x64
169179
{E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x86.ActiveCfg = Release|Win32
170180
{E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x86.Build.0 = Release|Win32
181+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|ARM64.ActiveCfg = Debug|ARM64
182+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|ARM64.Build.0 = Debug|ARM64
183+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x64.ActiveCfg = Debug|x64
184+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x64.Build.0 = Debug|x64
185+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x86.ActiveCfg = Debug|Win32
186+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x86.Build.0 = Debug|Win32
187+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|ARM64.ActiveCfg = Release|ARM64
188+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|ARM64.Build.0 = Release|ARM64
189+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x64.ActiveCfg = Release|x64
190+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x64.Build.0 = Release|x64
191+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x86.ActiveCfg = Release|Win32
192+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x86.Build.0 = Release|Win32
193+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Debug|ARM64.ActiveCfg = Debug|ARM64
194+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Debug|ARM64.Build.0 = Debug|ARM64
195+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Debug|x64.ActiveCfg = Debug|x64
196+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Debug|x64.Build.0 = Debug|x64
197+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Debug|x86.ActiveCfg = Debug|Win32
198+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Debug|x86.Build.0 = Debug|Win32
199+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Release|ARM64.ActiveCfg = Release|ARM64
200+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Release|ARM64.Build.0 = Release|ARM64
201+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Release|x64.ActiveCfg = Release|x64
202+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Release|x64.Build.0 = Release|x64
203+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Release|x86.ActiveCfg = Release|Win32
204+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066}.Release|x86.Build.0 = Release|Win32
171205
EndGlobalSection
172206
GlobalSection(SolutionProperties) = preSolution
173207
HideSolutionNode = FALSE
@@ -183,6 +217,8 @@ Global
183217
{EC87A64B-FA90-44F2-9842-F0B95FF7B078} = {742EB475-5A9A-4359-99A6-6D59D34255FF}
184218
{52B50A15-8B5B-428C-BDDF-8BEF0A409F3C} = {742EB475-5A9A-4359-99A6-6D59D34255FF}
185219
{E17E889F-D826-413F-854E-DBA6000B4DA7} = {26417B01-459E-4287-9524-7B0293BAD18A}
220+
{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} = {26417B01-459E-4287-9524-7B0293BAD18A}
221+
{E6BB33EF-2FF9-4B7C-822C-2F127E9CB066} = {58092034-5B83-4806-B7FE-CCDD7414C4AE}
186222
EndGlobalSection
187223
GlobalSection(ExtensibilityGlobals) = postSolution
188224
SolutionGuid = {16D43B4F-E3D4-4036-A44C-5DDD64988164}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#pragma once
2+
/********************************************************************
3+
// Created: 2025/05/20 14:26:10
4+
// File Name: D:\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify\MSGNotify_Define.h
5+
// File Path: D:\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify
6+
// File Base: MSGNotify_Define
7+
// File Ext: h
8+
// Project: XEngine
9+
// Author: qyt
10+
// Purpose: 消息通知导出定义
11+
// History:
12+
*********************************************************************/
13+
//////////////////////////////////////////////////////////////////////////
14+
// 导出函数
15+
//////////////////////////////////////////////////////////////////////////
16+
extern "C" XLONG MSGNotify_GetLastError(int *pInt_ErrorCode = NULL);
17+
/************************************************************************/
18+
/* 电子邮件通知 */
19+
/************************************************************************/
20+
/********************************************************************
21+
函数名称:MSGNotify_EMail_Send
22+
函数功能:发送一条邮件通知
23+
参数.一:lpszServiceAddr
24+
In/Out:In
25+
类型:常量字符指针
26+
可空:N
27+
意思:输入请求地址
28+
参数.二:lpszUser
29+
In/Out:In
30+
类型:常量字符指针
31+
可空:N
32+
意思:输入用户名
33+
参数.三:lpszPass
34+
In/Out:In
35+
类型:常量字符指针
36+
可空:N
37+
意思:输入密码
38+
参数.四:lpszSendAddr
39+
In/Out:In
40+
类型:常量字符指针
41+
可空:N
42+
意思:发送给谁
43+
参数.五:lpszSubJect
44+
In/Out:In
45+
类型:常量字符指针
46+
可空:N
47+
意思:发送的标题
48+
参数.六:lpszPayLoad
49+
In/Out:In
50+
类型:常量字符指针
51+
可空:N
52+
意思:发送的内容
53+
返回值
54+
类型:逻辑型
55+
意思:是否成功
56+
备注:
57+
*********************************************************************/
58+
extern "C" bool MSGNotify_EMail_Send(LPCXSTR lpszServiceAddr, LPCXSTR lpszUser, LPCXSTR lpszPass, LPCXSTR lpszSendAddr, LPCXSTR lpszSubJect, LPCXSTR lpszPayLoad);
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
#include "pch.h"
2+
#include "MSGNotify_EMail.h"
3+
/********************************************************************
4+
// Created: 2025/05/20 14:18:37
5+
// File Name: D:\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify\MSGNotify_EMail\MSGNotify_EMail.cpp
6+
// File Path: D:\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify\MSGNotify_EMail
7+
// File Base: MSGNotify_EMail
8+
// File Ext: cpp
9+
// Project: XEngine
10+
// Author: qyt
11+
// Purpose: 电子邮件通知
12+
// History:
13+
*********************************************************************/
14+
CMSGNotify_EMail::CMSGNotify_EMail()
15+
{
16+
17+
}
18+
CMSGNotify_EMail::~CMSGNotify_EMail()
19+
{
20+
21+
}
22+
//////////////////////////////////////////////////////////////////////////
23+
// 公有函数
24+
//////////////////////////////////////////////////////////////////////////
25+
/********************************************************************
26+
函数名称:MSGNotify_EMail_Send
27+
函数功能:发送一条邮件通知
28+
参数.一:lpszServiceAddr
29+
In/Out:In
30+
类型:常量字符指针
31+
可空:N
32+
意思:输入请求地址
33+
参数.二:lpszUser
34+
In/Out:In
35+
类型:常量字符指针
36+
可空:N
37+
意思:输入用户名
38+
参数.三:lpszPass
39+
In/Out:In
40+
类型:常量字符指针
41+
可空:N
42+
意思:输入密码
43+
参数.四:lpszSendAddr
44+
In/Out:In
45+
类型:常量字符指针
46+
可空:N
47+
意思:发送给谁
48+
参数.五:lpszSubJect
49+
In/Out:In
50+
类型:常量字符指针
51+
可空:N
52+
意思:发送的标题
53+
参数.六:lpszPayLoad
54+
In/Out:In
55+
类型:常量字符指针
56+
可空:N
57+
意思:发送的内容
58+
返回值
59+
类型:逻辑型
60+
意思:是否成功
61+
备注:
62+
*********************************************************************/
63+
bool CMSGNotify_EMail::MSGNotify_EMail_Send(LPCXSTR lpszServiceAddr, LPCXSTR lpszUser, LPCXSTR lpszPass, LPCXSTR lpszSendAddr, LPCXSTR lpszSubJect, LPCXSTR lpszPayLoad)
64+
{
65+
MSGNotify_IsErrorOccur = false;
66+
67+
if ((NULL == lpszServiceAddr) || (NULL == lpszUser) || (NULL == lpszPass))
68+
{
69+
MSGNotify_IsErrorOccur = true;
70+
MSGNotify_dwErrorCode = ERROR_XENGINE_THIRDPART_MSGNOTIFY_PARAMENT;
71+
return false;
72+
}
73+
XCLIENT_APIEMAIL st_EMailClient = {};
74+
75+
_tcsxcpy(st_EMailClient.tszServiceAddr, lpszServiceAddr);
76+
_tcsxcpy(st_EMailClient.tszUserName, lpszUser);
77+
_tcsxcpy(st_EMailClient.tszPassWord, lpszPass);
78+
_tcsxcpy(st_EMailClient.tszFromAddr, lpszUser);
79+
80+
XHANDLE xhToken = APIClient_EMail_Init(&st_EMailClient);
81+
if (NULL == xhToken)
82+
{
83+
MSGNotify_IsErrorOccur = true;
84+
MSGNotify_dwErrorCode = APIClient_GetLastError();
85+
return false;
86+
}
87+
if (!APIClient_EMail_Send(xhToken, lpszSendAddr, lpszSubJect, lpszPayLoad))
88+
{
89+
MSGNotify_IsErrorOccur = true;
90+
MSGNotify_dwErrorCode = APIClient_GetLastError();
91+
return false;
92+
}
93+
APIClient_EMail_Close(xhToken);
94+
return true;
95+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#pragma once
2+
/********************************************************************
3+
// Created: 2025/05/20 14:17:37
4+
// File Name: D:\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify\MSGNotify_EMail\MSGNotify_EMail.h
5+
// File Path: D:\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify\MSGNotify_EMail
6+
// File Base: MSGNotify_EMail
7+
// File Ext: h
8+
// Project: XEngine
9+
// Author: qyt
10+
// Purpose: 电子邮件通知
11+
// History:
12+
*********************************************************************/
13+
14+
class CMSGNotify_EMail
15+
{
16+
public:
17+
CMSGNotify_EMail();
18+
~CMSGNotify_EMail();
19+
public:
20+
bool MSGNotify_EMail_Send(LPCXSTR lpszServiceAddr, LPCXSTR lpszUser, LPCXSTR lpszPass, LPCXSTR lpszSendAddr, LPCXSTR lpszSubJect, LPCXSTR lpszPayLoad);
21+
protected:
22+
};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#pragma once
2+
/********************************************************************
3+
// Created: 2025/05/20 14:25:37
4+
// File Name: D:\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify\MSGNotify_Error.h
5+
// File Path: D:\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify
6+
// File Base: MSGNotify_Error
7+
// File Ext: h
8+
// Project: XEngine
9+
// Author: qyt
10+
// Purpose: 消息通知错误码
11+
// History:
12+
*********************************************************************/
13+
#define ERROR_XENGINE_THIRDPART_MSGNOTIFY_PARAMENT 0x01B0001 //参数错误
14+
#define ERROR_XENGINE_THIRDPART_MSGNOTIFY_PARSEJSON 0x01B0002 //解析JSON失败
15+
#define ERROR_XENGINE_THIRDPART_MSGNOTIFY_PAYLOAD 0x01B0003 //负载内容格式不正确
16+
#define ERROR_XENGINE_THIRDPART_MSGNOTIFY_FAILED 0x01B0004 //服务器处理失败

0 commit comments

Comments
 (0)