SuperAPI AI 工具集

dotnet-email-service-aws-ses

编程与开发

查看项目

更新于 10-16 02:22

技能介绍

用途

该技能用于在 .NET API 项目中实现通过 AWS SES(Amazon Simple Email Service)发送邮件。它遵循 Clean Architecture 分层,将邮件能力抽象为应用层接口,并在基础设施层提供 AWS SES 的具体实现,适合需要以模板化方式发送事务性邮件的后端应用。

主要能力

  • AWS SES 集成:使用 Amazon.SimpleEmailV2 客户端发送邮件,支持显式凭证(开发/预发)或 IAM 角色/环境凭证(生产)。
  • HTML 模板:从文件加载 HTML 模板,使用 {{key}} 语法进行占位符替换。
  • Result 模式:接口返回 Result<T>,不抛出异常,便于统一错误处理。
  • 启用/禁用开关:通过配置项 Enabled 控制,开发模式下仅记录日志而不实际发送。
  • 错误定义:提供 SendFailed、TemplateNotFound、InvalidRecipient、EmailDisabled 等预定义错误。

使用方式

  1. 在应用层定义 IEmailService 接口,包含 SendTemplatedEmailAsync(模板邮件)与 SendHtmlEmailAsync(原始 HTML 邮件)两个方法。
  2. 在基础设施层实现 AwsSesEmailService,构造时根据配置初始化 SES v2 客户端,并将模板路径设置为应用基目录下的相对路径。
  3. 通过 EmailOptions 配置 AWS 区域、访问密钥、发件地址、发件人名称、启用开关和模板目录,并在 appsettings.json 的 Email 节中填写。
  4. 在依赖注入中调用 services.Configure<EmailOptions> 并注册 IEmailService 到 AwsSesEmailService。
  5. 将 HTML 模板文件放入 Api/EmailTemplates 目录,文件名不带扩展名传入 templateName 参数。

适用场景

资料中给出的模板示例包括预约提醒、检测结果就绪、欢迎邮件、处方就绪、密码重置等,示例配置使用医疗健康类域名与 HIPAA 提示,表明其适用于需要发送事务性通知邮件的 .NET 后端服务。

限制

资料未提供关于收费、价格、性能指标或平台兼容性范围的信息。模板占位符替换为简单的字符串替换,未说明是否支持条件、循环等复杂模板逻辑。