From cb3681f3b1630598b887255d1b183d8f71c1eb40 Mon Sep 17 00:00:00 2001 From: Arthur Danjou Date: Sun, 27 Jun 2021 18:55:04 +0200 Subject: [PATCH] Working on emails --- .env.example | 6 ++++-- app/Mailers/FormConfirmation.ts | 3 ++- config/mail.ts | 20 ++++++++++++-------- contracts/mail.ts | 2 +- env.ts | 6 ++++-- pnpm-lock.yaml | 26 +++++++++++++------------- 6 files changed, 36 insertions(+), 27 deletions(-) diff --git a/.env.example b/.env.example index 92e298b..8e05d9e 100644 --- a/.env.example +++ b/.env.example @@ -27,8 +27,10 @@ API_VERSION= CACHE_VIEWS= -MAILGUN_API_KEY= -MAILGUN_URL= +SMTP_HOST= +SMTP_PORT= +SMTP_USERNAME= +SMTP_PASSWORD= GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= diff --git a/app/Mailers/FormConfirmation.ts b/app/Mailers/FormConfirmation.ts index c3c3c77..235c3af 100644 --- a/app/Mailers/FormConfirmation.ts +++ b/app/Mailers/FormConfirmation.ts @@ -14,7 +14,8 @@ export default class FormConfirmation extends BaseMailer { public prepare(message: MessageContract) { message - .from('contact@arthurdanjou.fr') + .from('no-reply@arthurdanjou.fr') + .replyTo('contact@arthurdanjou.fr') .to(this.email) .subject('Confirmation Form') .html(this.html) diff --git a/config/mail.ts b/config/mail.ts index a547551..dd4fed5 100644 --- a/config/mail.ts +++ b/config/mail.ts @@ -18,7 +18,7 @@ const mailConfig: MailConfig = { | a mailer | */ - mailer: 'mailgun', + mailer: 'smtp', /* |-------------------------------------------------------------------------- @@ -36,17 +36,21 @@ const mailConfig: MailConfig = { mailers: { /* |-------------------------------------------------------------------------- - | Mailgun + | Smtp |-------------------------------------------------------------------------- | - | Uses Mailgun service for sending emails. + | Uses SMTP protocol for sending email | */ - mailgun: { - driver: 'mailgun', - baseUrl: 'https://api.mailgun.net/v3/', - key: Env.get('MAILGUN_API_KEY'), - domain: Env.get('MAILGUN_URL'), + smtp: { + driver: 'smtp', + host: Env.get('SMTP_HOST'), + port: Env.get('SMTP_PORT'), + auth: { + user: Env.get('SMTP_USERNAME'), + pass: Env.get('SMTP_PASSWORD'), + type: 'login', + } }, }, diff --git a/contracts/mail.ts b/contracts/mail.ts index efe2ba5..cb3413e 100644 --- a/contracts/mail.ts +++ b/contracts/mail.ts @@ -9,6 +9,6 @@ declare module '@ioc:Adonis/Addons/Mail' { import { MailDrivers } from '@ioc:Adonis/Addons/Mail' interface MailersList { - mailgun: MailDrivers['mailgun'], + smtp: MailDrivers['smtp'], } } diff --git a/env.ts b/env.ts index 54da07e..d4e8801 100644 --- a/env.ts +++ b/env.ts @@ -51,8 +51,10 @@ export default Env.rules({ API_VERSION: Env.schema.string(), //Mails - MAILGUN_API_KEY: Env.schema.string(), - MAILGUN_URL: Env.schema.string(), + SMTP_HOST: Env.schema.string({ format: 'host' }), + SMTP_PORT: Env.schema.number(), + SMTP_USERNAME: Env.schema.string(), + SMTP_PASSWORD: Env.schema.string(), //Socials Authentication GOOGLE_CLIENT_ID: Env.schema.string(), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8323a8..308db41 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -280,7 +280,7 @@ packages: fast-deep-equal: 3.1.3 igniculus: 1.5.0 knex: 0.95.6_mysql@2.18.1 - knex-dynamic-connection: 2.1.0_mysql@2.18.1 + knex-dynamic-connection: 2.1.1_mysql@2.18.1 luxon: 1.27.0 macroable: 5.1.3 pretty-hrtime: 1.0.3 @@ -398,7 +398,7 @@ packages: marked-terminal: 4.1.1_marked@2.1.1 mrm-core: 6.0.0 mustache: 4.2.0 - open: 8.2.0 + open: 8.2.1 dev: true /@adonisjs/validator/11.0.2_dca74b6a7cfaf1624e10c0567ec6c737: @@ -415,7 +415,7 @@ packages: '@types/luxon': 1.27.0 '@types/validator': 13.1.4 luxon: 1.27.0 - normalize-url: 6.0.1 + normalize-url: 6.1.0 tmp-cache: 1.1.0 validator: 13.6.0 dev: false @@ -1069,7 +1069,7 @@ packages: http-cache-semantics: 4.1.0 keyv: 4.0.3 lowercase-keys: 2.0.0 - normalize-url: 6.0.1 + normalize-url: 6.1.0 responselike: 2.0.0 dev: false @@ -2637,8 +2637,8 @@ packages: resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} engines: {node: '>=6'} - /knex-dynamic-connection/2.1.0_mysql@2.18.1: - resolution: {integrity: sha512-yi0aYQ0a4uTPqbzkqYwWquR9CzAVC+7ejPyx/l263031l5F2FtTAFvxxV1HDntnusn1XsiR7F+iCJ2LvYUJ2qA==} + /knex-dynamic-connection/2.1.1_mysql@2.18.1: + resolution: {integrity: sha512-/Lwg/T13eNRJVoSJ4e9SH3slVUmg37UHxDxVluAAKdJZxYVj8YsP2x50JSk310RmKsYbOZ8oB8SwVVEuRa4nYw==} dependencies: debug: 4.3.1 knex: 0.95.6_mysql@2.18.1 @@ -3413,8 +3413,8 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - /normalize-url/6.0.1: - resolution: {integrity: sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ==} + /normalize-url/6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} dev: false @@ -3494,8 +3494,8 @@ packages: dependencies: mimic-fn: 2.1.0 - /open/8.2.0: - resolution: {integrity: sha512-O8uInONB4asyY3qUcEytpgwxQG3O0fJ/hlssoUHsBboOIRVZzT6Wq+Rwj5nffbeUhOdMjpXeISpDDzHCMRDuOQ==} + /open/8.2.1: + resolution: {integrity: sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ==} engines: {node: '>=12'} dependencies: define-lazy-prop: 2.0.0 @@ -4649,8 +4649,8 @@ packages: engines: {node: '>= 12'} dev: true - /yargs-parser/20.2.7: - resolution: {integrity: sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==} + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} dev: false @@ -4664,7 +4664,7 @@ packages: require-directory: 2.1.1 string-width: 4.2.2 y18n: 5.0.8 - yargs-parser: 20.2.7 + yargs-parser: 20.2.9 dev: false /youch-terminal/1.1.1: