paiban/NPP.SmartSchedue.Api.Contracts/Services/Notification/Input/BatchSendPersonalizedEmailInput.cs
Asoka.Wang 2b3f9acdce 123
2025-09-22 19:09:47 +08:00

53 lines
1.4 KiB
C#

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace NPP.SmartSchedue.Api.Contracts.Services.Notification.Input;
/// <summary>
/// 个性化批量发送邮件输入
/// </summary>
public class BatchSendPersonalizedEmailInput
{
/// <summary>
/// 邮件项列表
/// </summary>
[Required(ErrorMessage = "邮件项列表不能为空")]
[MinLength(1, ErrorMessage = "至少需要一个邮件项")]
public List<EmailItem> EmailItems { get; set; } = new List<EmailItem>();
}
/// <summary>
/// 邮件项
/// </summary>
public class EmailItem
{
/// <summary>
/// 接收人邮箱
/// </summary>
[Required(ErrorMessage = "接收人邮箱不能为空")]
[EmailAddress(ErrorMessage = "邮箱地址格式无效")]
public string RecipientEmail { get; set; } = "";
/// <summary>
/// 邮件主题
/// </summary>
[Required(ErrorMessage = "邮件主题不能为空")]
[MaxLength(500, ErrorMessage = "邮件主题长度不能超过500个字符")]
public string Subject { get; set; } = "";
/// <summary>
/// 邮件内容
/// </summary>
[Required(ErrorMessage = "邮件内容不能为空")]
public string Content { get; set; } = "";
/// <summary>
/// 是否HTML格式
/// </summary>
public bool IsHtml { get; set; } = true;
/// <summary>
/// 附件文件路径列表
/// </summary>
public List<string>? Attachments { get; set; }
}