{"library":"parse-server-api-mail-adapter","title":"Parse Server API Mail Adapter","description":"The `parse-server-api-mail-adapter` provides a universal email solution for Parse Server, enabling it to send emails via any third-party REST API. It supports dynamic templates, localization, and includes out-of-the-box integrations for services like AWS SES, Mailgun, and ZeptoMail, along with a custom API option. The current stable version is 5.0.5, with frequent maintenance releases for security updates and occasional minor/major releases for new features or Node.js version support. Its key differentiators include its extensibility to any REST API-based mail service, built-in templating, and full localization support, making it a flexible choice compared to adapters tied to specific providers. It ships with TypeScript definitions, enhancing developer experience for TypeScript users.","language":"javascript","status":"active","last_verified":"Sun Apr 19","install":{"commands":["npm install parse-server-api-mail-adapter"],"cli":null},"imports":["import { ApiPayloadConverter } from 'parse-server-api-mail-adapter';","import ApiMailAdapter from 'parse-server-api-mail-adapter';","import type { MailAdapterOptions } from 'parse-server-api-mail-adapter';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import ParseServer from 'parse-server';\nimport Mailgun from 'mailgun.js';\nimport formData from 'form-data';\n\nconst mailgun = new Mailgun(formData);\nconst mailgunClient = mailgun.client({ username: 'api', key: process.env.MAILGUN_API_KEY ?? '' });\nconst mailgunDomain = process.env.MAILGUN_DOMAIN ?? 'your-mailgun-domain.com';\n\n// Basic Parse Server setup\nconst server = new ParseServer({\n    databaseURI: process.env.DATABASE_URI ?? 'mongodb://localhost:27017/dev',\n    cloud: __dirname + '/cloud/main.js', // Or wherever your cloud code is\n    appId: process.env.APP_ID ?? 'myAppId',\n    masterKey: process.env.MASTER_KEY ?? 'myMasterKey',\n    serverURL: process.env.SERVER_URL ?? 'http://localhost:1337/parse',\n    publicServerURL: process.env.PUBLIC_SERVER_URL ?? 'http://localhost:1337/parse',\n\n    // Configure the Mail Adapter\n    emailAdapter: {\n        module: 'parse-server-api-mail-adapter',\n        options: {\n            sender: process.env.MAIL_SENDER ?? 'noreply@example.com',\n            templates: {\n                passwordReset: {\n                    subject: 'Reset Your Password',\n                    pathPlainText: 'path/to/templates/password_reset.txt',\n                    pathHtml: 'path/to/templates/password_reset.html'\n                },\n                emailVerification: {\n                    subject: 'Verify Your Email',\n                    pathPlainText: 'path/to/templates/email_verification.txt',\n                    pathHtml: 'path/to/templates/email_verification.html'\n                }\n            },\n            // Example for Mailgun provider\n            api: {\n                mailgun: {\n                    domain: mailgunDomain,\n                    client: mailgunClient,\n                    options: {\n                        // Custom options for Mailgun API calls\n                    }\n                }\n            }\n            // Other API providers like AWS SES, ZeptoMail or custom API would be configured here\n        }\n    }\n});\n\n// To run Parse Server (for example in index.js)\n// const app = express();\n// app.use('/parse', server.app);\n// const port = process.env.PORT || 1337;\n// app.listen(port, () => console.log(`Parse Server running on port ${port}.`));\n","lang":"typescript","description":"Demonstrates how to configure `parse-server-api-mail-adapter` with Parse Server using environment variables for sensitive data and Mailgun as an example provider, including template paths.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}