{{{
  exports({ to: app.configPath('mail.ts') })
}}}
import env from '#start/env'
import { defineConfig, transports } from '@adonisjs/mail'

const mailConfig = defineConfig({
  default: '{{transports[0]}}',

   /**
    * The mailers object can be used to configure multiple mailers
    * each using a different transport or same transport with different
    * options.
   */
  mailers: { {{#if transports.includes('smtp')}}
    smtp: transports.smtp({
      host: env.get('SMTP_HOST'),
      port: env.get('SMTP_PORT'),
			/**
       * Uncomment the auth block if your SMTP
       * server needs authentication
       */
      /* auth: {
        type: 'login',
        user: env.get('SMTP_USERNAME'),
        pass: env.get('SMTP_PASSWORD'),
      }, */
    }),
		{{/if}} {{#if transports.includes('ses')}}
    ses: transports.ses({
      apiVersion: '2010-12-01',
      region: env.get('AWS_REGION'),
      credentials: {
        accessKeyId: env.get('AWS_ACCESS_KEY_ID'),
        secretAccessKey: env.get('AWS_SECRET_ACCESS_KEY'),
      },
      sendingRate: 10,
      maxConnections: 5,
    }),
		{{/if}} {{#if transports.includes('mailgun')}}
    mailgun: transports.mailgun({
      key: env.get('MAILGUN_API_KEY'),
      baseUrl: 'https://api.mailgun.net/v3',
      domain: env.get('MAILGUN_DOMAIN'),
    }),
		{{/if}} {{#if transports.includes('sparkpost')}}
    sparkpost: transports.sparkpost({
      key: env.get('SPARKPOST_API_KEY'),
      baseUrl: 'https://api.sparkpost.com/api/v1',
    }),
		{{/if}} {{#if transports.includes('brevo')}}
    brevo: transports.brevo({
      key: env.get('BREVO_API_KEY'),
      baseUrl: 'https://api.brevo.com/v3',
    }),
    {{/if}} {{#if transports.includes('resend')}}
    resend: transports.resend({
      key: env.get('RESEND_API_KEY'),
      baseUrl: 'https://api.resend.com',
    }),
    {{/if}}
  },
})

export default mailConfig

declare module '@adonisjs/mail/types' {
  export interface MailersList extends InferMailers<typeof mailConfig> {}
}
