邮件发送失败问题处理

This commit is contained in:
2025-11-19 20:02:57 +08:00
parent 3d78e0bbe5
commit b889ca30ac
4 changed files with 255 additions and 200 deletions
+230 -188
View File
@@ -109,8 +109,16 @@ namespace BLL
{
mail.Subject = $"有新的关键事项抄送你了——{gItem.ProjectName}";
}
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
try
{
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
}
catch (Exception ex)
{
ErrLogInfo.WriteLog($"【邮箱提醒异常】{user.UserName}邮箱:{user.Email};时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};异常信息:{ex.Message}");
continue;
}
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
//邮件正文
string bodyStr = $@"<html>
@@ -235,8 +243,16 @@ namespace BLL
MailMessage mail = new MailMessage();
//邮件主题
mail.Subject = $"有新的事项申请关闭——{gItem.ProjectName}";
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
try
{
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
}
catch (Exception ex)
{
ErrLogInfo.WriteLog($"【邮箱提醒异常】{user.UserName}邮箱:{user.Email};时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};异常信息:{ex.Message}");
continue;
}
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
//邮件正文
string bodyStr = $@"<html>
@@ -361,8 +377,16 @@ namespace BLL
MailMessage mail = new MailMessage();
//邮件主题
mail.Subject = $"有事项申请关闭被驳回了——{gItem.ProjectName}";
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
try
{
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
}
catch (Exception ex)
{
ErrLogInfo.WriteLog($"【邮箱提醒异常】{user.UserName}邮箱:{user.Email};时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};异常信息:{ex.Message}");
continue;
}
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
//邮件正文
string bodyStr = $@"<html>
@@ -418,12 +442,12 @@ namespace BLL
/// </summary>
public static void OverdueWarningSendEmail()
{
try
{
Model.SGGLDB db = Funs.DB;
//取未关闭且已经超期的数据
//try
//{
Model.SGGLDB db = Funs.DB;
//取未关闭且已经超期的数据
string strSql = @"select
string strSql = @"select
DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate())) AS DateDiffDays
,a.GJSXID,a.ProjectId,a.Detail,a.createDate,Base_Project.ProjectName,Base_Unit.UnitName,a.CloseDate,a.IsManypeople,a.CompleteDate,a.AttachUrl
,case a.state when 2 then '正在进行' when 3 then '待办' when 0 then '已关闭' when 1 then '开放' end as state
@@ -447,112 +471,121 @@ namespace BLL
left join[dbo].[Base_Unit] on a.UnitId = Base_Unit.UnitId
where 1=1 and Base_Project.ProjectState=1 and a.state<>'0' and a.state<>'1' and (GETDATE()>a.CompleteDate or DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate()))=-7 or DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate()))=-6 or DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate()))=-1 ) ";
List<SqlParameter> listStr = new List<SqlParameter>();
SqlParameter[] parameter = listStr.ToArray();
List<SqlParameter> listStr = new List<SqlParameter>();
SqlParameter[] parameter = listStr.ToArray();
DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter);
DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter);
// 使用LINQ将DataTable转换为List<GJSXItem>
var lstOverdue = table.AsEnumerable().Select(row => new GJSXItem
// 使用LINQ将DataTable转换为List<GJSXItem>
var lstOverdue = table.AsEnumerable().Select(row => new GJSXItem
{
DateDiffDays = Convert.ToInt32(row["DateDiffDays"]),
GJSXID = row["GJSXID"].ToString(),
ProjectId = row["ProjectId"].ToString(),
ProjectName = row["ProjectName"].ToString(),
UnitName = row["UnitName"].ToString(),
Detail = row["Detail"].ToString(),
CNProfessionalName = row["CNProfessionalName"].ToString(),
QuestionTypeName = row["QuestionTypeName"].ToString(),
GJSXTypeName = row["GJSXTypeName"].ToString(),
UserID = row["UserID"].ToString(),
UserName = row["UserName"].ToString(),
//UserEmail = row["UserEmail"].ToString(),
User_ReceiveUserId = row["User_ReceiveUserId"].ToString(),
User_ReceiveUserName = row["User_ReceiveUserName"].ToString(),
//User_ReceiveUserEmail = row["User_ReceiveUserEmail"].ToString(),
User_AcceptanceUserId = row["User_AcceptanceUserId"].ToString(),
User_AcceptanceUserName = row["User_AcceptanceUserName"].ToString(),
//User_AcceptanceUserEmail = row["User_AcceptanceUserEmail"].ToString(),
User_CsUserIds = row["User_CsUserIds"].ToString(),
User_CsUsers = row["User_CsUsers"].ToString(),
//User_CsUsersUserEmail = row["User_CsUsersUserEmail"].ToString(),
CompleteDate = Convert.ToDateTime(row["CompleteDate"].ToString())
}).ToList();
#region
//获取有邮箱的用户
var userIds = BLL.UserService.GetUserHaveEmailList();
//userIds = userIds.Where(x => x.UserName == "张小松" || x.UserName == "詹佩佩").ToList();
//userIds = userIds.Where(x => x.UserName == "申银行").ToList();
if (userIds.Any() && lstOverdue.Any())
{
//int allnum = 0;
var lstProject = lstOverdue.Select(x => new { x.ProjectId, x.ProjectName }).Distinct().ToList();
foreach (var pro in lstProject)
{
DateDiffDays = Convert.ToInt32(row["DateDiffDays"]),
GJSXID = row["GJSXID"].ToString(),
ProjectId = row["ProjectId"].ToString(),
ProjectName = row["ProjectName"].ToString(),
UnitName = row["UnitName"].ToString(),
Detail = row["Detail"].ToString(),
CNProfessionalName = row["CNProfessionalName"].ToString(),
QuestionTypeName = row["QuestionTypeName"].ToString(),
GJSXTypeName = row["GJSXTypeName"].ToString(),
UserID = row["UserID"].ToString(),
UserName = row["UserName"].ToString(),
//UserEmail = row["UserEmail"].ToString(),
User_ReceiveUserId = row["User_ReceiveUserId"].ToString(),
User_ReceiveUserName = row["User_ReceiveUserName"].ToString(),
//User_ReceiveUserEmail = row["User_ReceiveUserEmail"].ToString(),
User_AcceptanceUserId = row["User_AcceptanceUserId"].ToString(),
User_AcceptanceUserName = row["User_AcceptanceUserName"].ToString(),
//User_AcceptanceUserEmail = row["User_AcceptanceUserEmail"].ToString(),
User_CsUserIds = row["User_CsUserIds"].ToString(),
User_CsUsers = row["User_CsUsers"].ToString(),
//User_CsUsersUserEmail = row["User_CsUsersUserEmail"].ToString(),
CompleteDate = Convert.ToDateTime(row["CompleteDate"].ToString())
}).ToList();
#region
//获取有邮箱的用户
var userIds = BLL.UserService.GetUserHaveEmailList();
//userIds = userIds.Where(x => x.UserName == "申银行").ToList();
if (userIds.Any() && lstOverdue.Any())
{
//int allnum = 0;
var lstProject = lstOverdue.Select(x => new { x.ProjectId, x.ProjectName }).Distinct().ToList();
foreach (var pro in lstProject)
//if (allnum > 50) { break; }
var lstProjectOverdue = lstOverdue.Where(x => x.ProjectId == pro.ProjectId).ToList();
if (lstProjectOverdue.Any())
{
//if (allnum > 50) { break; }
var lstProjectOverdue = lstOverdue.Where(x => x.ProjectId == pro.ProjectId).ToList();
if (lstProjectOverdue.Any())
string projectName = pro.ProjectName;
#region
foreach (var user in userIds)
{
string projectName = pro.ProjectName;
#region
foreach (var user in userIds)
//if (allnum > 100) { break; }
MailMessage mail = new MailMessage();
//邮件主题
mail.Subject = $"关键事项预警提醒——{projectName}";
try
{
//if (allnum > 100) { break; }
MailMessage mail = new MailMessage();
//邮件主题
mail.Subject = $"关键事项预警提醒——{projectName}";
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
}
catch (Exception ex)
{
ErrLogInfo.WriteLog($"【邮箱提醒异常】{user.UserName}邮箱:{user.Email};时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};异常信息:{ex.Message}");
continue;
}
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
StringBuilder tbodyStr = new StringBuilder();
int index = 1;
//责任人为本人
var acceptanceItems = lstProjectOverdue.Where(x => !string.IsNullOrWhiteSpace(x.User_AcceptanceUserId) && x.User_AcceptanceUserId.Contains(user.UserId)).OrderByDescending(x => x.DateDiffDays).ToList();
if (acceptanceItems.Any())
StringBuilder tbodyStr = new StringBuilder();
int index = 1;
//责任人为本人
var acceptanceItems = lstProjectOverdue.Where(x => !string.IsNullOrWhiteSpace(x.User_AcceptanceUserId) && x.User_AcceptanceUserId.Contains(user.UserId)).OrderByDescending(x => x.DateDiffDays).ToList();
if (acceptanceItems.Any())
{
foreach (var item in acceptanceItems)
{
foreach (var item in acceptanceItems)
{
tbodyStr.Append($"<tr><td>{index}</td><td>本人负责</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : item.DateDiffDays < -1 ? "" : "")}</td></tr>");
index++;
}
tbodyStr.Append($"<tr><td>{index}</td><td>本人负责</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : item.DateDiffDays < -1 ? "" : "")}</td></tr>");
index++;
}
//发起人为本人
var userItems = lstProjectOverdue.Where(x => x.UserID == user.UserId && x.DateDiffDays > -1).OrderByDescending(x => x.DateDiffDays).ToList();
if (userItems.Any())
}
//发起人为本人
var userItems = lstProjectOverdue.Where(x => x.UserID == user.UserId && x.DateDiffDays > -1).OrderByDescending(x => x.DateDiffDays).ToList();
if (userItems.Any())
{
foreach (var item in userItems)
{
foreach (var item in userItems)
{
tbodyStr.Append($"<tr><td>{index}</td><td>本人发起</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
index++;
}
tbodyStr.Append($"<tr><td>{index}</td><td>本人发起</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
index++;
}
//跟踪人为本人--x.User_ReceiveUserId != null && x.User_ReceiveUserId != "" &&
var receiveItems = lstProjectOverdue.Where(x => !string.IsNullOrWhiteSpace(x.User_ReceiveUserId) && x.User_ReceiveUserId.Contains(user.UserId) && x.DateDiffDays > -1).OrderByDescending(x => x.DateDiffDays).ToList();
if (receiveItems.Any())
}
//跟踪人为本人--x.User_ReceiveUserId != null && x.User_ReceiveUserId != "" &&
var receiveItems = lstProjectOverdue.Where(x => !string.IsNullOrWhiteSpace(x.User_ReceiveUserId) && x.User_ReceiveUserId.Contains(user.UserId) && x.DateDiffDays > -1).OrderByDescending(x => x.DateDiffDays).ToList();
if (receiveItems.Any())
{
foreach (var item in receiveItems)
{
foreach (var item in receiveItems)
{
tbodyStr.Append($"<tr><td>{index}</td><td>本人跟踪</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
index++;
}
tbodyStr.Append($"<tr><td>{index}</td><td>本人跟踪</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
index++;
}
//抄送人为本人
var csUserItems = lstProjectOverdue.Where(x =>!string.IsNullOrWhiteSpace(x.User_CsUserIds)&& x.User_CsUserIds.Contains(user.UserId)).OrderByDescending(x => x.DateDiffDays).ToList();
if (csUserItems.Any())
}
//抄送人为本人
var csUserItems = lstProjectOverdue.Where(x => !string.IsNullOrWhiteSpace(x.User_CsUserIds) && x.User_CsUserIds.Contains(user.UserId)).OrderByDescending(x => x.DateDiffDays).ToList();
if (csUserItems.Any())
{
foreach (var item in csUserItems)
{
foreach (var item in csUserItems)
{
tbodyStr.Append($"<tr><td>{index}</td><td>抄送本人</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : item.DateDiffDays < -1 ? "" : "")}</td></tr>");
index++;
}
tbodyStr.Append($"<tr><td>{index}</td><td>抄送本人</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : item.DateDiffDays < -1 ? "" : "")}</td></tr>");
index++;
}
//邮件正文
string bodyStr = @"<html>
}
//邮件正文
string bodyStr = @"<html>
<head>
<style>
table {
@@ -587,82 +620,91 @@ namespace BLL
</thead>
<tbody>" + tbodyStr.ToString() + "</tbody></table></body></html>";
mail.Body = bodyStr;
if (index > 1)
mail.Body = bodyStr;
if (index > 1)
{
try
{
try
//allnum++;
bool send = PushEmail(mail);
//Thread.Sleep(1000); //暂停1秒
}
catch (Exception ex)
{
ErrLogInfo.WriteLog($"【邮箱提醒异常】邮箱:{user.Email};时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};异常信息:{ex.Message}");
continue;
}
}
}
#endregion
#region
var projectSupervisors = ProjectUserService.GetProjectUserByRoleId(pro.ProjectId, Const.ProjectSupervisor);
var projectManagers = ProjectUserService.GetProjectUserByRoleId(pro.ProjectId, Const.ProjectManager);
List<string> remindUserIds = new List<string>();
List<string> projectSupervisorIds = projectSupervisors.Select(x => x.UserId).ToList();
List<string> projectManagerIds = projectManagers.Select(x => x.UserId).ToList();
if (projectSupervisorIds.Any()) { remindUserIds.AddRange(projectSupervisorIds); }
if (projectManagerIds.Any()) { remindUserIds.AddRange(projectManagerIds); }
var remindUsers = userIds.Where(x => remindUserIds.Contains(x.UserId));
foreach (var user in remindUsers)
{
MailMessage mail = new MailMessage();
//邮件主题
mail.Subject = $"关键事项逾期提醒——{projectName}";
try
{
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
}
catch (Exception ex)
{
ErrLogInfo.WriteLog($"【邮箱提醒异常】{user.UserName}邮箱:{user.Email};时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};异常信息:{ex.Message}");
continue;
}
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
StringBuilder tbodyStr = new StringBuilder();
int index = 0;
if (projectManagerIds.Contains(user.UserId))
{
index = 0;
//超期当日提醒项目经理
var lstProjectOverdue1 = lstProjectOverdue.Where(x => x.DateDiffDays == 0 || x.DateDiffDays == -1).ToList();
//超期一周的重要、紧急事项提醒项目经理
var lstProjectOverdue7 = lstProjectOverdue.Where(x => x.DateDiffDays >= 7 && x.QuestionTypeName != "一般").ToList();
lstProjectOverdue1.AddRange(lstProjectOverdue7);
foreach (var item in lstProjectOverdue1)
{
if (!string.IsNullOrWhiteSpace(item.User_CsUserIds) && !item.User_CsUserIds.Contains(user.UserId))
{
//allnum++;
bool send = PushEmail(mail);
//Thread.Sleep(1000); //暂停1秒
}
catch (Exception ex)
{
ErrLogInfo.WriteLog($"【邮箱提醒异常】邮箱:{user.Email};时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};异常信息:{ex.Message}");
continue;
index++;
tbodyStr.Append($"<tr><td>{index}</td><td>事项逾期</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
}
}
}
#endregion
#region
var projectSupervisors = ProjectUserService.GetProjectUserByRoleId(pro.ProjectId,Const.ProjectSupervisor);
var projectManagers = ProjectUserService.GetProjectUserByRoleId(pro.ProjectId, Const.ProjectManager);
List<string> remindUserIds = new List<string>();
List<string> projectSupervisorIds = projectSupervisors.Select(x => x.UserId).ToList();
List<string> projectManagerIds = projectManagers.Select(x => x.UserId).ToList();
if (projectSupervisorIds.Any()) { remindUserIds.AddRange(projectSupervisorIds); }
if (projectManagerIds.Any()) { remindUserIds.AddRange(projectManagerIds); }
var remindUsers = userIds.Where(x => remindUserIds.Contains(x.UserId));
foreach (var user in remindUsers)
if (projectSupervisorIds.Contains(user.UserId) && !projectManagerIds.Contains(user.UserId))
{
MailMessage mail = new MailMessage();
//邮件主题
mail.Subject = $"关键事项逾期提醒——{projectName}";
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
StringBuilder tbodyStr = new StringBuilder();
int index = 0;
if (projectManagerIds.Contains(user.UserId))
//超期两周的紧急事项提醒项目主管
var lstProjectOverdue14 = lstProjectOverdue.Where(x => x.DateDiffDays >= 13 && x.QuestionTypeName == "紧急").ToList();
//var lstProjectOverdue14 = lstProjectOverdue.Where(x => x.DateDiffDays >= 13).ToList();
index = 0;
foreach (var item in lstProjectOverdue14)
{
index = 0;
//超期当日提醒项目经理
var lstProjectOverdue1 = lstProjectOverdue.Where(x => x.DateDiffDays == 0 || x.DateDiffDays == -1).ToList();
//超期一周的重要、紧急事项提醒项目经理
var lstProjectOverdue7 = lstProjectOverdue.Where(x => x.DateDiffDays >= 7 && x.QuestionTypeName != "一般").ToList();
lstProjectOverdue1.AddRange(lstProjectOverdue7);
foreach (var item in lstProjectOverdue1)
if (!string.IsNullOrWhiteSpace(item.User_CsUserIds) && !item.User_CsUserIds.Contains(user.UserId))
{
if (!string.IsNullOrWhiteSpace(item.User_CsUserIds) && !item.User_CsUserIds.Contains(user.UserId))
{
index++;
tbodyStr.Append($"<tr><td>{index}</td><td>事项逾期</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
}
index++;
tbodyStr.Append($"<tr><td>{index}</td><td>事项逾期</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
}
}
if (projectSupervisorIds.Contains(user.UserId) && !projectManagerIds.Contains(user.UserId))
{
//超期两周的重要、紧急事项提醒项目主管
var lstProjectOverdue14 = lstProjectOverdue.Where(x => x.DateDiffDays >= 13).ToList();
index = 0;
foreach (var item in lstProjectOverdue14)
{
if (!string.IsNullOrWhiteSpace(item.User_CsUserIds) && !item.User_CsUserIds.Contains(user.UserId))
{
index++;
tbodyStr.Append($"<tr><td>{index}</td><td>事项逾期</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
}
}
}
//邮件正文
string bodyStr = @"<html>
}
//邮件正文
string bodyStr = @"<html>
<head>
<style>
table {
@@ -697,35 +739,35 @@ namespace BLL
</thead>
<tbody>" + tbodyStr.ToString() + "</tbody></table></body></html>";
mail.Body = bodyStr;
if (index > 1)
mail.Body = bodyStr;
if (index > 1)
{
try
{
try
{
//allnum++;
bool send = PushEmail(mail);
//Thread.Sleep(1000); //暂停1秒
}
catch (Exception ex)
{
ErrLogInfo.WriteLog($"【邮箱提醒异常】邮箱:{user.Email};时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};异常信息:{ex.Message}");
continue;
}
//allnum++;
bool send = PushEmail(mail);
//Thread.Sleep(1000); //暂停1秒
}
catch (Exception ex)
{
ErrLogInfo.WriteLog($"【邮箱提醒异常】邮箱:{user.Email};时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};异常信息:{ex.Message}");
continue;
}
}
#endregion
}
#endregion
}
}
#endregion
}
catch (Exception ex)
{
ErrLogInfo.WriteLog("关键事项邮件预警", ex);
}
#endregion
//}
//catch (Exception ex)
//{
// ErrLogInfo.WriteLog("关键事项邮件预警", ex);
//}
}
/// <summary>