|
|
@@ -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失败。)");
|
|
|
}
|
|
|
}
|
|
|
|