summaryrefslogtreecommitdiffstats
path: root/config/mail.ts
blob: dbe4bdf68f9e192c74e8fee1c8564f62a9911ff0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import env from '#start/env';
import { defineConfig, transports } from '@adonisjs/mail';

const mailConfig = defineConfig({
  default: 'smtp',

  /**
   * The mailers object can be used to configure multiple mailers
   * each using a different transport or same transport with different
   * options.
   */
  mailers: {
    smtp: transports.smtp({
      port: env.get('SMTP_PORT', '2525'),
      host: env.get('SMTP_HOST', 'localhost'),
      secure: JSON.parse(env.get('MAIL_SSL', 'false')),
      requireTLS: JSON.parse(env.get('MAIL_REQUIRE_TLS', 'false')),
      auth: {
        user: env.get('MAIL_USERNAME')!,
        pass: env.get('MAIL_PASSWORD')!,
        type: 'login',
      },
      maxConnections: 5,
      maxMessages: 100,
    }),

    ses: transports.ses({
      apiVersion: '2010-12-01',
      credentials: {
        accessKeyId: env.get('SES_ACCESS_KEY')!,
        secretAccessKey: env.get('SES_ACCESS_SECRET')!,
      },
      region: process.env.SES_REGION!,
      sendingRate: 10,
      maxConnections: 5,
    }),

    mailgun: transports.mailgun({
      baseUrl: 'https://api.mailgun.net/v3',
      key: env.get('MAILGUN_API_KEY')!,
      domain: env.get('MAILGUN_DOMAIN')!,
    }),

    sparkpost: transports.sparkpost({
      baseUrl: 'https://api.sparkpost.com/api/v1',
      key: env.get('SPARKPOST_API_KEY')!,
    }),
  },
});

export default mailConfig;

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