diff options
author | André Oliveira <37463445+SpecialAro@users.noreply.github.com> | 2023-10-27 00:21:08 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-27 00:21:08 +0100 |
commit | 3945548b602ae1ba91dc231869d27dab7f2f10fc (patch) | |
tree | e62a39568f31792e8382c66ef7cd07b8af310b82 | |
parent | Bump actions/setup-node from 3 to 4 (#83) (diff) | |
download | ferdium-server-3945548b602ae1ba91dc231869d27dab7f2f10fc.tar.gz ferdium-server-3945548b602ae1ba91dc231869d27dab7f2f10fc.tar.zst ferdium-server-3945548b602ae1ba91dc231869d27dab7f2f10fc.zip |
Fix recovery emails (#85)
* Fix recovery emails
* Update sender to random smtp for tests
-rw-r--r-- | .env.test | 7 | ||||
-rw-r--r-- | app/Models/User.ts | 15 | ||||
-rw-r--r-- | config/mail.ts | 6 |
3 files changed, 25 insertions, 3 deletions
@@ -4,3 +4,10 @@ NODE_ENV=test | |||
4 | ASSETS_DRIVER=fake | 4 | ASSETS_DRIVER=fake |
5 | SESSION_DRIVER=memory | 5 | SESSION_DRIVER=memory |
6 | APP_KEY=IDU2cMbrvS6iv5841YmFJSjnIqT1X1Nx | 6 | APP_KEY=IDU2cMbrvS6iv5841YmFJSjnIqT1X1Nx |
7 | |||
8 | MAIL_CONNECTION=smtp | ||
9 | SMTP_HOST=smtp.freesmtpservers.com | ||
10 | SMTP_PORT=25 | ||
11 | MAIL_SSL=false | ||
12 | MAIL_REQUIRE_TLS=false | ||
13 | MAIL_SENDER=random@random.host | ||
diff --git a/app/Models/User.ts b/app/Models/User.ts index 0ed4627..0b8e688 100644 --- a/app/Models/User.ts +++ b/app/Models/User.ts | |||
@@ -14,6 +14,9 @@ import randtoken from 'rand-token'; | |||
14 | import Token from './Token'; | 14 | import Token from './Token'; |
15 | import Workspace from './Workspace'; | 15 | import Workspace from './Workspace'; |
16 | import Service from './Service'; | 16 | import Service from './Service'; |
17 | import Mail from '@ioc:Adonis/Addons/Mail'; | ||
18 | import { url } from 'Config/app'; | ||
19 | import { mailFrom } from 'Config/dashboard'; | ||
17 | 20 | ||
18 | export default class User extends BaseModel { | 21 | export default class User extends BaseModel { |
19 | @column({ isPrimary: true }) | 22 | @column({ isPrimary: true }) |
@@ -66,6 +69,18 @@ export default class User extends BaseModel { | |||
66 | public async forgotPassword(): Promise<void> { | 69 | public async forgotPassword(): Promise<void> { |
67 | const token = await this.generateToken(this, 'forgot_password'); | 70 | const token = await this.generateToken(this, 'forgot_password'); |
68 | 71 | ||
72 | await Mail.send(message => { | ||
73 | message | ||
74 | .from(mailFrom) | ||
75 | .to(this.email) | ||
76 | .subject('[Ferdium] Password Recovery') | ||
77 | .htmlView('emails/reset_password', { | ||
78 | username: this.username, | ||
79 | appUrl: url, | ||
80 | token: token, | ||
81 | }); | ||
82 | }); | ||
83 | |||
69 | await Event.emit('forgot:password', { | 84 | await Event.emit('forgot:password', { |
70 | user: this, | 85 | user: this, |
71 | token, | 86 | token, |
diff --git a/config/mail.ts b/config/mail.ts index 1210592..3f688ce 100644 --- a/config/mail.ts +++ b/config/mail.ts | |||
@@ -18,7 +18,7 @@ export default mailConfig({ | |||
18 | | a mailer | 18 | | a mailer |
19 | | | 19 | | |
20 | */ | 20 | */ |
21 | mailer: 'smtp', | 21 | mailer: Env.get('MAIL_CONNECTION', 'smtp'), |
22 | 22 | ||
23 | /* | 23 | /* |
24 | |-------------------------------------------------------------------------- | 24 | |-------------------------------------------------------------------------- |
@@ -50,8 +50,8 @@ export default mailConfig({ | |||
50 | secure: JSON.parse(Env.get('MAIL_SSL', 'false')), | 50 | secure: JSON.parse(Env.get('MAIL_SSL', 'false')), |
51 | requireTLS: JSON.parse(Env.get('MAIL_REQUIRE_TLS', 'false')), | 51 | requireTLS: JSON.parse(Env.get('MAIL_REQUIRE_TLS', 'false')), |
52 | auth: { | 52 | auth: { |
53 | user: Env.get('SMTP_USERNAME'), | 53 | user: Env.get('MAIL_USERNAME'), |
54 | pass: Env.get('SMTP_PASSWORD'), | 54 | pass: Env.get('MAIL_PASSWORD'), |
55 | type: 'login', | 55 | type: 'login', |
56 | }, | 56 | }, |
57 | maxConnections: 5, | 57 | maxConnections: 5, |