syntax = "proto3"; package email; option go_package = "./email"; service EmailService { // 发送验证码邮件 rpc SendVerificationCode(SendVerificationCodeReq) returns (SendVerificationCodeResp); // 发送通用邮件 rpc SendEmail(SendEmailReq) returns (SendEmailResp); // 批量发送邮件 rpc SendBatchEmail(SendBatchEmailReq) returns (SendBatchEmailResp); // 发送模板邮件 rpc SendTemplateEmail(SendTemplateEmailReq) returns (SendTemplateEmailResp); } // 发送验证码请求 message SendVerificationCodeReq { string to = 1; // 收件人邮箱 string code = 2; // 验证码 string type = 3; // 类型: register, reset, login string language = 4; // 语言: zh-CN, en-US int32 expire_minutes = 5; // 过期时间(分钟) } // 发送验证码响应 message SendVerificationCodeResp { int32 code = 1; string message = 2; string message_id = 3; // 邮件ID,用于追踪 } // 发送通用邮件请求 message SendEmailReq { string to = 1; // 收件人 string subject = 2; // 主题 string body = 3; // 邮件内容(HTML) string cc = 4; // 抄送 string bcc = 5; // 密送 repeated Attachment attachments = 6; // 附件 EmailPriority priority = 7; // 优先级 } // 发送通用邮件响应 message SendEmailResp { int32 code = 1; string message = 2; string message_id = 3; } // 批量发送邮件请求 message SendBatchEmailReq { repeated string to_list = 1; // 收件人列表 string subject = 2; string body = 3; EmailPriority priority = 4; } // 批量发送邮件响应 message SendBatchEmailResp { int32 code = 1; string message = 2; int32 success_count = 3; int32 failed_count = 4; repeated FailedEmail failed_list = 5; } // 发送模板邮件请求 message SendTemplateEmailReq { string to = 1; string template_name = 2; // 模板名称 map params = 3; // 模板参数 string language = 4; } // 发送模板邮件响应 message SendTemplateEmailResp { int32 code = 1; string message = 2; string message_id = 3; } // 附件 message Attachment { string filename = 1; bytes content = 2; string content_type = 3; // MIME类型 } // 邮件优先级 enum EmailPriority { NORMAL = 0; HIGH = 1; LOW = 2; } // 失败的邮件 message FailedEmail { string email = 1; string reason = 2; }