Quellcode durchsuchen

发送邮件接口(非流式)更改为(hotmail)发送

Lyyyi vor 1 Woche
Ursprung
Commit
f685aaf232
1 geänderte Dateien mit 40 neuen und 29 gelöschten Zeilen
  1. 40 29
      OASystem/OASystem.Api/Controllers/ResourceController.cs

+ 40 - 29
OASystem/OASystem.Api/Controllers/ResourceController.cs

@@ -1,6 +1,7 @@
 using Aspose.Cells;
 using Aspose.Words;
 using Aspose.Words.Tables;
+using Azure;
 using EyeSoft.Extensions;
 using Microsoft.AspNetCore.Http.Features;
 using Newtonsoft.Json.Serialization;
@@ -4279,11 +4280,17 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
 
             var seedInvInfos = dataList.Where(x => dto.Guids.Contains(x.Guid)).ToList();
 
-            if (seedInvInfos == null) Ok(JsonView(false, "发送邮件的邀请方信息为空"));
+            if (seedInvInfos == null) return Ok(JsonView(false, "发送邮件的邀请方信息为空"));
 
             var userInfo = await _sqlSugar.Queryable<Sys_Users>().Where(x => x.IsDel == 0 && x.Id == dto.CurrUserId).Select(x => new { x.Email, x.CnName }).FirstAsync();
 
-            if (string.IsNullOrEmpty(userInfo.Email)) Ok(JsonView(false, "当前账号未配置邮箱,请先配置邮箱!"));
+            if (string.IsNullOrEmpty(userInfo.Email)) return Ok(JsonView(false, "当前账号未配置邮箱,请先配置邮箱!"));
+
+            // hotmail 配置信息验证
+            var hotmailConfig = await _hotmailService.GetUserMailConfig(dto.CurrUserId);
+
+            (bool verify, string msg) = _hotmailService.ConfigVerify(hotmailConfig);
+            if (!verify) return Ok(JsonView(false, msg));
 
             var msgSb = new StringBuilder();
             #region 发送邮件
@@ -4292,40 +4299,44 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
             {
                 int seedStatus = 5;
 
-                if (!string.IsNullOrEmpty(item.EmailInfo.EmailTitle) && !string.IsNullOrEmpty(item.EmailInfo.EmailContent))
+
+                if (string.IsNullOrEmpty(item.EmailInfo?.EmailTitle) || string.IsNullOrEmpty(item.EmailInfo?.EmailContent))
                 {
-                    try
+                    msgSb.Append($"跳过:{item.NameCn} (邮件标题或内容缺失)");
+                    continue;
+                }
+
+                try
+                {
+                    var req = new MailDto()
                     {
-                        var req = new EmailRequestDto()
-                        {
-                            ToEmails = new List<string> { item.Email },
-                            //CcEmails = new List<string> { userInfo.Email },
-                            //BccEmails = new List<string> { userInfo.Email },
-                            Subject = item.EmailInfo.EmailTitle,
-                            Body = item.EmailInfo.EmailContent,
-                            Files = Array.Empty<IFormFile>()
-                        };
-                        var response = await _qiYeWeChatApiService.EmailSendAsync(req);
-                        if (response.errcode == 0)
-                        {
-                            seedStatus = 4;
-                            item.EmailInfo.Status = seedStatus;
-                            item.EmailInfo.Operator = userInfo?.CnName ?? "";
-                            item.EmailInfo.OperatedAt = DateTime.Now;
+                        Subject = item.EmailInfo.EmailTitle,
+                        Content = item.EmailInfo.EmailContent,
+                        To = item.Email
+                    };
 
-                            msgSb.AppendLine($"{item.NameCn}({item.Email}):邮件发送成功!");
-                        }
-                        else
-                        {
-                            msgSb.AppendLine($"{item.NameCn}({item.Email}):邮件发送失败(msg:{response.errmsg})");
-                        }
+                    var res = await _hotmailService.SendMailAsync(hotmailConfig.UserName, req);
+
+
+                    if (res.IsSuccess)
+                    {
+                        seedStatus = 4;
+                        item.EmailInfo.Status = seedStatus;
+                        item.EmailInfo.Operator = userInfo?.CnName ?? "";
+                        item.EmailInfo.OperatedAt = DateTime.Now;
 
+                        msgSb.AppendLine($"{item.NameCn}({item.Email}):邮件发送成功!");
                     }
-                    catch (Exception ex)
+                    else
                     {
-                        _logger.LogError(ex, "商邀AI调用企业微信邮件API失败。");
-                        msgSb.AppendLine($"{item.NameCn}({item.Email}):邮件发送失败(msg:商邀AI调用企业微信邮件API失败。)");
+                        msgSb.AppendLine($"{item.NameCn}({item.Email}):邮件发送失败(msg:{res.Message})");
                     }
+
+                }
+                catch (Exception ex)
+                {
+                    _logger.LogError(ex, "商邀AI调用企业微信邮件API失败。");
+                    msgSb.AppendLine($"{item.NameCn}({item.Email}):邮件发送失败(msg:商邀AI调用企业微信邮件API失败。)");
                 }
             }