包信息
| 属性 | 值 |
|---|---|
| NuGet 包 | Bitzsoft.Integrations.EnterpriseMail.Alibaba |
| Provider ID | alibaba |
| 鉴权 | OAuth 2.0 Client Credentials(AppId + Secret) |
| 生命周期 | Transient |
配置字段(AlibabaMailOptions)
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
AppId | string | 是 | — | 阿里邮箱 API 应用 AppId(Client ID) |
Secret | string | 是 | — | 阿里邮箱 API 应用 Secret(Client Secret) |
BaseUrl | string | 否 | https://alimail-cn.aliyuncs.com | 阿里邮箱 API 基地址 |
DefaultUserEmail | string | 否 | — | 默认操作的邮箱地址 |
HttpClientName | string | 否 | AlibabaMail | 命名 HttpClient 名称 |
配置示例
{ "EnterpriseMail": { "Alibaba": { "AppId": "your-client-id", "Secret": "your-client-secret", "DefaultUserEmail": "user@your-domain.com" } }}DI 注册
// ① 配置节绑定builder.Services.AddBitzsoftAlibabaMail(builder.Configuration.GetSection("EnterpriseMail:Alibaba"));
// ② 委托配置builder.Services.AddBitzsoftAlibabaMail(options =>{ options.AppId = "your-client-id"; options.Secret = "your-client-secret"; options.DefaultUserEmail = "user@your-domain.com";});使用示例
public class MailService(IEnterpriseMailProvider mail){ public async Task<SendMailResult> SendAsync(string to, string subject, string body) { return await mail.SendAsync(new SendMailRequest { To = new() { new MailAddress(to) }, Subject = subject, Body = body, }); }
public async Task<MailListResult> ListInboxAsync() { return await mail.ListMessagesAsync("INBOX", pageIndex: 1, pageSize: 20); }}已知限制
- 阿里邮箱 API 要求指定操作用户邮箱(
DefaultUserEmail),不在请求中指定时使用配置默认值。 - 部分高级搜索能力受限于阿里邮箱 API 的
SearchAsync实现深度。
相关
- 企业邮箱域手册:接口设计与供应商差异