sendSimpleMail
Send emails directly from AI assistants using a standardized interface. Specify recipient, subject, and body to dispatch messages through email services.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| subject | Yes | ||
| body | Yes |
Implementation Reference
- src/tools/mail.ts:313-349 (handler)Handler function for the 'sendSimpleMail' MCP tool. It validates input using Zod schema, calls MailService.sendMail with to, subject, and text=body, and returns success/error response.this.server.tool( "sendSimpleMail", { to: z.string(), subject: z.string(), body: z.string() }, async ({ to, subject, body }) => { try { const result = await this.mailService.sendMail({ to, subject, text: body }); if (result.success) { return { content: [ { type: "text", text: `简单邮件发送成功,消息ID: ${result.messageId}\n\n提示:如果需要等待对方回复,可以使用 waitForReply 工具。` } ] }; } else { return { content: [ { type: "text", text: `简单邮件发送失败: ${result.error}` } ] }; } } catch (error) { return { content: [ { type: "text", text: `发送简单邮件时发生错误: ${error instanceof Error ? error.message : String(error)}` } ] }; } } );
- src/tools/mail.ts:316-318 (schema)Zod input schema for sendSimpleMail tool: requires 'to' (string), 'subject' (string), 'body' (string).to: z.string(), subject: z.string(), body: z.string()
- src/tools/mail-service.ts:156-178 (helper)MailService.sendMail method: the core implementation that uses nodemailer Transporter to send the email based on MailInfo.async sendMail(mailInfo: MailInfo): Promise<{ success: boolean; messageId?: string; error?: string }> { try { const mailOptions = { from: { name: this.config.defaults.fromName, address: this.config.defaults.fromEmail, }, to: mailInfo.to, cc: mailInfo.cc, bcc: mailInfo.bcc, subject: mailInfo.subject, text: mailInfo.text, html: mailInfo.html, attachments: mailInfo.attachments, }; const info = await this.smtpTransporter.sendMail(mailOptions); return { success: true, messageId: info.messageId }; } catch (error) { console.error('发送邮件错误:', error); return { success: false, error: error instanceof Error ? error.message : String(error) }; } }
- src/tools/mail-service.ts:34-46 (schema)TypeScript interface MailInfo defining the structure for email sending parameters, used by sendMail.export interface MailInfo { to: string | string[]; cc?: string | string[]; bcc?: string | string[]; subject: string; text?: string; html?: string; attachments?: Array<{ filename: string; content: string | Buffer; contentType?: string; }>; }