package api import ( "fmt" "github.com/aliyun/alibaba-cloud-sdk-go/sdk" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" "github.com/gin-gonic/gin" "project/common/params" "project/common/public" "project/router/web" ) func EmailXSend(c *gin.Context) { result := web.NewResponse() defer web.SendResponse(c, result)() pm := params.EmailSend{} err := c.ShouldBindJSON(&pm) if err != nil { result.SetErrCode(public.RespCodeErrorParam).AddError(err) return } // 初始化客户端 credentialsProvider := credentials.NewStaticAKCredentialsProvider(pm.AccessKeyId, pm.AccessKeySecret) client, err := sdk.NewClientWithOptions( "cn-hangzhou", // 区域 ID,例如 cn-hangzhou sdk.NewConfig(), // 请求配置 credentialsProvider, // ) if err != nil { panic(err) } // 创建请求 request := requests.NewCommonRequest() request.Method = "POST" request.Scheme = "https" request.Domain = "dm.aliyuncs.com" // 邮件推送服务域名 request.Version = "2015-11-23" // API 版本 request.ApiName = "SingleSendMail" // 接口名称 // 设置请求参数 request.QueryParams["RegionId"] = "cn-hangzhou" request.QueryParams["AccountName"] = "sender@your-domain.com" // 发件人地址(需验证) request.QueryParams["AddressType"] = "1" // 0: 随机账号; 1: 发件人地址 request.QueryParams["ReplyToAddress"] = "true" // 是否允许回复 request.QueryParams["ToAddress"] = "recipient@example.com" // 收件人地址 request.QueryParams["Subject"] = "Test Email from Aliyun" // 邮件主题 request.QueryParams["HtmlBody"] = "

Hello

This is a test email .

" // HTML 邮件正文 // request.QueryParams["TextBody"] = "This is a test email." // 纯文本正文(可选,优先使用 HtmlBody) // 发送请求 res, err := client.ProcessCommonRequest(request) if err != nil { panic(err) } // 输出响应 //fmt.Println(res.GetHttpContentString()) // 4. 处理响应 if res.IsSuccess() { result.SetData(fmt.Sprintf("发送失败: %s", res.GetHttpContentString())) return } else { result.SetErrMsg( public.RespCodeErrorUnknown, fmt.Sprintf("发送失败: %s", res.GetHttpContentString())).AddError() return } }