﻿1
00:00:00,790 --> 00:00:02,400
‫Docente: Terminata la parte di

2
00:00:02,400 --> 00:00:03,960
‫caricamento del file

3
00:00:03,960 --> 00:00:07,300
‫della sezione, rivolgiamo ora la nostra attenzione all'invio di e-mail.

4
00:00:07,300 --> 00:00:09,610
‫E in realtà abbiamo già inviato

5
00:00:09,610 --> 00:00:13,170
‫e-mail prima, per la reimpostazione della password, ma nelle prossime due

6
00:00:13,170 --> 00:00:16,050
‫lezioni lo porteremo a un livello completamente nuovo.

7
00:00:16,050 --> 00:00:18,760
‫E quello che faremo è creare modelli di

8
00:00:18,760 --> 00:00:21,350
‫email con pug e inviare email reali

9
00:00:21,350 --> 00:00:23,270
‫utilizzando il servizio SendGrid.

10
00:00:23,270 --> 00:00:25,220
‫E ora, in questa prima lezione,

11
00:00:25,220 --> 00:00:27,630
‫costruiremo un gestore di posta elettronica più robusto

12
00:00:27,630 --> 00:00:29,313
‫di quello che avevamo prima.

13
00:00:30,870 --> 00:00:34,030
‫Quindi, apriamo la nostra cartella delle utilità

14
00:00:34,030 --> 00:00:38,510
‫e poi qui, ricorda, abbiamo già un file di posta elettronica.

15
00:00:38,510 --> 00:00:40,100
‫Ma in questo momento quello

16
00:00:40,100 --> 00:00:43,660
‫che abbiamo qui è solo un gestore di invio di email molto

17
00:00:43,660 --> 00:00:46,810
‫semplice, che non è in grado di accettare molte opzioni.

18
00:00:46,810 --> 00:00:48,120
‫E quindi ora

19
00:00:48,120 --> 00:00:50,190
‫costruiremo una soluzione molto più robusta qui.

20
00:00:50,190 --> 00:00:51,450
‫Va bene?

21
00:00:51,450 --> 00:00:53,833
‫Quindi quello che farò è creare una classe

22
00:00:55,360 --> 00:00:57,503
‫e quella classe si chiamerà e-mail.

23
00:00:58,750 --> 00:01:01,690
‫Quindi modulo. exports, quindi

24
00:01:01,690 --> 00:01:03,950
‫anche questa classe è

25
00:01:03,950 --> 00:01:07,103
‫ciò che esporteremo da questo file.

26
00:01:09,580 --> 00:01:13,340
‫E poi, come sempre, una classe ha bisogno di una funzione di

27
00:01:13,340 --> 00:01:16,170
‫costruzione, che è fondamentalmente la funzione che verrà

28
00:01:16,170 --> 00:01:19,300
‫eseguita quando un nuovo oggetto viene creato tramite questa classe.

29
00:01:19,300 --> 00:01:20,910
‫Ora diamo un'occhiata

30
00:01:20,910 --> 00:01:23,393
‫a come utilizzeremmo questa classe in pratica.

31
00:01:24,960 --> 00:01:26,770
‫E quindi l'idea, in pratica,

32
00:01:26,770 --> 00:01:28,840
‫ogni volta che vogliamo inviare una nuova

33
00:01:28,840 --> 00:01:32,960
‫email, è di importare questa classe di email e poi usarla in questo modo.

34
00:01:32,960 --> 00:01:34,713
‫Quindi, creando una nuova

35
00:01:35,970 --> 00:01:38,490
‫e-mail, e quindi in essa, vogliamo incollare un

36
00:01:38,490 --> 00:01:41,150
‫utente, in modo che l'utente conterrà l'indirizzo e-mail

37
00:01:41,150 --> 00:01:44,563
‫e anche il nome nel caso in cui desideriamo personalizzare l'e-mail.

38
00:01:45,800 --> 00:01:47,580
‫E anche un URL.

39
00:01:47,580 --> 00:01:49,120
‫E un buon esempio

40
00:01:49,120 --> 00:01:53,200
‫per questo è, ad esempio, l'URL di ripristino per reimpostare la password.

41
00:01:53,200 --> 00:01:54,033
‫Va bene?

42
00:01:54,033 --> 00:01:56,660
‫Quindi, un nuovo oggetto email, e poi

43
00:01:56,660 --> 00:01:59,000
‫lì vogliamo chiamare il metodo che

44
00:01:59,000 --> 00:02:00,570
‫effettivamente invierà l'email.

45
00:02:00,570 --> 00:02:02,843
‫Quindi, diciamo sendWelcome.

46
00:02:04,180 --> 00:02:07,410
‫E così quello verrà inviato ogni volta

47
00:02:07,410 --> 00:02:10,910
‫che un nuovo utente si iscrive alla nostra applicazione.

48
00:02:10,910 --> 00:02:11,743
‫Va bene?

49
00:02:11,743 --> 00:02:14,630
‫Avremo quindi anche inviare la reimpostazione della password.

50
00:02:14,630 --> 00:02:16,480
‫E il modo in

51
00:02:16,480 --> 00:02:18,950
‫cui imposteremo tutto questo renderà davvero facile

52
00:02:18,950 --> 00:02:21,490
‫continuare ad aggiungere nuovi e nuovi metodi simili

53
00:02:21,490 --> 00:02:24,450
‫a questo per inviare e-mail diverse per scenari diversi.

54
00:02:24,450 --> 00:02:25,370
‫Va bene?

55
00:02:25,370 --> 00:02:28,400
‫Ad ogni modo, poiché incolliamo l'utente e l'URL

56
00:02:28,400 --> 00:02:31,670
‫in una nuova email, il nostro costruttore deve

57
00:02:31,670 --> 00:02:33,633
‫quindi accettarli come argomenti.

58
00:02:34,720 --> 00:02:36,560
‫Quindi utente e URL.

59
00:02:36,560 --> 00:02:40,340
‫E quindi ciò che accade in questo costruttore è che questo. to

60
00:02:43,020 --> 00:02:47,130
‫sarà uguale all'utente. email Quindi vogliamo

61
00:02:49,926 --> 00:02:53,210
‫anche definire il nome dell'utente,

62
00:02:53,210 --> 00:02:56,433
‫sempre per personalizzare sostanzialmente l'e-mail.

63
00:02:59,903 --> 00:03:03,170
‫E quindi questo è utente. name e

64
00:03:03,170 --> 00:03:08,170
‫dividiamolo e prendiamo solo il primo elemento nell'array risultante.

65
00:03:09,530 --> 00:03:11,210
‫Quindi abbiamo fatto

66
00:03:11,210 --> 00:03:16,210
‫questo prima, ma poi anche questo. url è uguale all'URL in entrata.

67
00:03:17,010 --> 00:03:22,010
‫Infine, impostiamo anche questo. da qui.

68
00:03:22,500 --> 00:03:24,450
‫quindi fondamentalmente a livello di oggetto.

69
00:03:24,450 --> 00:03:26,970
‫E quindi ogni oggetto creato da questa

70
00:03:26,970 --> 00:03:28,830
‫classe riceverà questa proprietà.

71
00:03:28,830 --> 00:03:32,720
‫E quindi questo sarà simile a quello che abbiamo qui.

72
00:03:32,720 --> 00:03:35,020
‫Quindi è fondamentalmente questo da, quindi

73
00:03:35,020 --> 00:03:36,760
‫copiamolo ma è

74
00:03:36,760 --> 00:03:40,230
‫bello averlo in un posto centrale come questo.

75
00:03:40,230 --> 00:03:42,200
‫Ora una cosa che voglio davvero

76
00:03:42,200 --> 00:03:45,090
‫fare è definire sostanzialmente questo indirizzo e-mail qui

77
00:03:45,090 --> 00:03:46,770
‫come variabile di

78
00:03:46,770 --> 00:03:48,740
‫configurazione, e quindi una variabile di

79
00:03:48,740 --> 00:03:50,440
‫ambiente che possiamo cambiare molto

80
00:03:50,440 --> 00:03:54,073
‫facilmente manipolando il file config. env file.

81
00:03:55,774 --> 00:03:56,607
‫Va bene?

82
00:03:57,940 --> 00:04:00,100
‫Quindi chiamiamo questo EMAIL_FROM.

83
00:04:02,490 --> 00:04:06,530
‫E poi vogliamo solo l'indirizzo email stesso.

84
00:04:06,530 --> 00:04:07,363
‫Va bene?

85
00:04:08,560 --> 00:04:10,840
‫Quindi un altro caso in cui è molto utile

86
00:04:10,840 --> 00:04:12,353
‫utilizzare le variabili di ambiente.

87
00:04:13,260 --> 00:04:15,360
‫E ora facciamo di questo una stringa modello.

88
00:04:18,400 --> 00:04:20,840
‫E ovviamente collegalo qui.

89
00:04:20,840 --> 00:04:23,153
‫Quindi questo è il processo. avv. EMAIL_FROM.

90
00:04:28,540 --> 00:04:30,930
‫Successivamente, creiamo un metodo qui

91
00:04:30,930 --> 00:04:33,230
‫per creare il trasporto.

92
00:04:33,230 --> 00:04:35,563
‫Così simile a quello che abbiamo qui.

93
00:04:37,640 --> 00:04:39,347
‫Quindi createTransport.

94
00:04:43,450 --> 00:04:46,280
‫E ora qui in realtà vogliamo avere trasporti diversi, indipendentemente

95
00:04:46,280 --> 00:04:48,890
‫dal fatto che siamo in produzione o meno.

96
00:04:48,890 --> 00:04:50,170
‫Quindi, quando siamo

97
00:04:50,170 --> 00:04:52,470
‫in produzione, vogliamo effettivamente inviare email

98
00:04:52,470 --> 00:04:55,540
‫reali, e lo faremo un po' più tardi usando

99
00:04:55,540 --> 00:04:57,890
‫SendGrid, ma se non siamo in produzione,

100
00:04:57,890 --> 00:05:00,730
‫vogliamo comunque usare la nostra applicazione Mailtrap proprio

101
00:05:00,730 --> 00:05:03,270
‫come abbiamo fatto prima quando inviamo email.

102
00:05:03,270 --> 00:05:07,020
‫Quindi, invece di inviare un'e-mail a un vero indirizzo e-mail, verrà

103
00:05:07,020 --> 00:05:10,730
‫catturata nella nostra casella di posta Mailtrap in modo che possiamo

104
00:05:10,730 --> 00:05:12,260
‫effettivamente dargli un'occhiata

105
00:05:12,260 --> 00:05:13,843
‫nel nostro processo di sviluppo.

106
00:05:14,950 --> 00:05:18,343
‫Quindi quel trasportatore sarà esattamente lo stesso di questo, quindi

107
00:05:19,870 --> 00:05:25,277
‫copiamolo ma prima diciamo if(process.

108
00:05:25,277 --> 00:05:25,277
‫avv. NODE_ENV).

109
00:05:30,360 --> 00:05:32,360
‫Quindi, ricorda, è così che abbiamo verificato

110
00:05:32,360 --> 00:05:34,110
‫se siamo in produzione o meno.

111
00:05:36,390 --> 00:05:38,230
‫Quindi, se questo è

112
00:05:38,230 --> 00:05:39,620
‫in produzione, e

113
00:05:39,620 --> 00:05:43,830
‫quindi se siamo in produzione, vogliamo creare un trasportatore per SendGrid.

114
00:05:43,830 --> 00:05:45,890
‫Quindi mettiamolo qui e lo faremo

115
00:05:45,890 --> 00:05:47,613
‫di nuovo più tardi.

116
00:05:49,170 --> 00:05:51,410
‫Per ora riportiamo solo qualcosa da qui.

117
00:05:51,410 --> 00:05:53,133
‫Non importa, diciamo uno.

118
00:05:54,680 --> 00:05:55,513
‫Va bene?

119
00:05:56,750 --> 00:05:58,840
‫E poi fondamentalmente altrimenti vogliamo

120
00:05:58,840 --> 00:06:02,493
‫restituire questo nodemailer. creareTrasporto.

121
00:06:05,166 --> 00:06:05,999
‫Va bene?

122
00:06:05,999 --> 00:06:06,840
‫Quindi

123
00:06:06,840 --> 00:06:11,293
‫questo Transport qui fondamentalmente restituirà un nuovo trasporto nodemailer come questo.

124
00:06:12,280 --> 00:06:14,660
‫O, d'altra parte, quando saremo

125
00:06:14,660 --> 00:06:17,333
‫in produzione, allora quello che sarà qui.

126
00:06:18,500 --> 00:06:19,333
‫Va bene?

127
00:06:19,333 --> 00:06:21,020
‫Quindi cancelliamolo effettivamente da qui.

128
00:06:23,930 --> 00:06:26,773
‫Inoltre, vogliamo eliminare questo.

129
00:06:32,970 --> 00:06:35,480
‫E ora creiamo il metodo send.

130
00:06:35,480 --> 00:06:37,520
‫E quindi questo sarà

131
00:06:37,520 --> 00:06:39,610
‫il metodo che effettuerà l'invio effettivo.

132
00:06:39,610 --> 00:06:40,443
‫Va bene?

133
00:06:40,443 --> 00:06:43,650
‫E questo riceverà un modello e un oggetto.

134
00:06:43,650 --> 00:06:45,150
‫E capirai un po'

135
00:06:45,150 --> 00:06:48,003
‫meglio perché questo accade una volta completata l'intera classe.

136
00:06:49,270 --> 00:06:50,103
‫Va bene?

137
00:06:51,550 --> 00:06:53,513
‫Quindi modello e soggetto.

138
00:06:56,050 --> 00:06:58,553
‫Quindi mettiamo qui un commento su cosa farà.

139
00:07:01,170 --> 00:07:03,600
‫E ora, prima di scrivere questa funzione, lascia

140
00:07:03,600 --> 00:07:05,690
‫che ti mostri come la useremo,

141
00:07:05,690 --> 00:07:08,753
‫e quindi perché abbiamo bisogno del modello e dell'oggetto qui.

142
00:07:10,890 --> 00:07:12,893
‫Quindi, ricorda come abbiamo

143
00:07:12,893 --> 00:07:16,890
‫detto qui che avremo un metodo chiamato sendWelcome, e

144
00:07:16,890 --> 00:07:21,890
‫anche come un metodo per inviare un'e-mail di reimpostazione della password.

145
00:07:21,900 --> 00:07:26,353
‫E quindi, ora aggiungiamolo qui, quindi inviaBenvenuto.

146
00:07:28,460 --> 00:07:31,430
‫E questo non riceve alcun argomento e tutto

147
00:07:31,430 --> 00:07:34,410
‫ciò che fa è chiamare send con il

148
00:07:35,470 --> 00:07:37,030
‫modello e l'oggetto

149
00:07:37,030 --> 00:07:38,690
‫che vogliamo per questa email.

150
00:07:38,690 --> 00:07:39,523
‫Va bene?

151
00:07:39,523 --> 00:07:41,800
‫E così di nuovo, questo rende davvero

152
00:07:41,800 --> 00:07:43,370
‫facile creare e-mail diverse

153
00:07:43,370 --> 00:07:45,480
‫per tutti i tipi di situazioni diverse.

154
00:07:45,480 --> 00:07:46,550
‫Va bene?

155
00:07:46,550 --> 00:07:49,297
‫Quindi abbiamo questa funzione di invio di un percorso

156
00:07:49,297 --> 00:07:51,790
‫qui e poi tutti questi più specifici, che

157
00:07:51,790 --> 00:07:55,100
‫a loro volta chiameranno la funzione di invio del router che

158
00:07:55,100 --> 00:07:57,150
‫sta facendo il lavoro effettivo.

159
00:07:57,150 --> 00:07:58,500
‫Va bene?

160
00:07:58,500 --> 00:08:01,950
‫Ed effettivamente ecco questo. send perché

161
00:08:01,950 --> 00:08:03,970
‫ovviamente questi metodi

162
00:08:03,970 --> 00:08:06,600
‫qui verranno definiti sull'oggetto corrente.

163
00:08:06,600 --> 00:08:07,643
‫E quindi è questo.

164
00:08:09,530 --> 00:08:12,113
‫Quindi qui incolliamo il nome del modello.

165
00:08:14,280 --> 00:08:16,630
‫E quindi questo nome di modello che ho

166
00:08:16,630 --> 00:08:19,020
‫messo qui, in futuro sarà un modello di

167
00:08:19,020 --> 00:08:20,280
‫carlino che creeremo.

168
00:08:20,280 --> 00:08:22,320
‫Quindi, in realtà nella prossima lezione,

169
00:08:22,320 --> 00:08:24,600
‫creeremo questo modello di carlino per inviare

170
00:08:24,600 --> 00:08:26,523
‫questa email di benvenuto.

171
00:08:27,710 --> 00:08:28,543
‫Va bene?

172
00:08:28,543 --> 00:08:29,763
‫E poi solo la riga dell'oggetto.

173
00:08:31,250 --> 00:08:35,320
‫Diciamo 'Benvenuto nella famiglia Natours! ' E così,

174
00:08:37,550 --> 00:08:40,920
‫proprio così, non dobbiamo preoccuparci di nessuno

175
00:08:40,920 --> 00:08:43,210
‫dei dettagli di implementazione

176
00:08:43,210 --> 00:08:45,260
‫quando inviamo effettivamente l'e-mail.

177
00:08:45,260 --> 00:08:47,290
‫Quindi, per esempio, nel punto

178
00:08:47,290 --> 00:08:49,510
‫del nostro codice in cui vogliamo

179
00:08:49,510 --> 00:08:51,900
‫inviare l'e-mail di benvenuto, non dobbiamo preoccuparci dei

180
00:08:51,900 --> 00:08:54,130
‫nomi dei modelli o delle righe dell'oggetto.

181
00:08:54,130 --> 00:08:57,130
‫Tutto quello che faremo è dire di inviare un'e-mail di benvenuto e

182
00:08:57,130 --> 00:08:58,260
‫il gioco è fatto.

183
00:08:58,260 --> 00:09:00,380
‫E poi la

184
00:09:00,380 --> 00:09:03,563
‫nostra classe si occuperà di occuparsi dell'implementazione.

185
00:09:04,880 --> 00:09:05,780
‫Va bene?

186
00:09:05,780 --> 00:09:09,023
‫Ad ogni modo, ora costruiamo effettivamente questa funzione di invio.

187
00:09:10,180 --> 00:09:14,560
‫Quindi, quello che faremo in questa funzione,

188
00:09:14,560 --> 00:09:19,560
‫è prima rendere l'HTML per l'e-mail basato su un

189
00:09:20,820 --> 00:09:22,663
‫modello pug.

190
00:09:25,650 --> 00:09:27,550
‫Quindi fondamentalmente quello che

191
00:09:27,550 --> 00:09:29,823
‫stiamo incollando qui con il modello.

192
00:09:31,750 --> 00:09:34,533
‫Quindi, definisci le opzioni e-mail, e così

193
00:09:36,570 --> 00:09:40,883
‫sarà ancora una volta molto simile a questo, e infatti

194
00:09:41,750 --> 00:09:43,530
‫lasciami andare avanti

195
00:09:43,530 --> 00:09:46,453
‫e tagliarlo da qui e incollarlo qui.

196
00:09:48,130 --> 00:09:49,000
‫Va bene?

197
00:09:49,000 --> 00:09:51,600
‫Ovviamente non sarà esattamente lo stesso, ma lo

198
00:09:51,600 --> 00:09:53,573
‫lasceremo per un po' più tardi.

199
00:09:54,500 --> 00:09:55,333
‫Va bene?

200
00:09:55,333 --> 00:09:56,323
‫E infine,

201
00:09:58,690 --> 00:10:01,423
‫crea un trasporto e invia e-mail.

202
00:10:06,930 --> 00:10:07,880
‫Va bene?

203
00:10:07,880 --> 00:10:10,530
‫E così è, lascerò anche quello per dopo.

204
00:10:13,120 --> 00:10:15,440
‫Quindi, a partire dal punto numero uno.

205
00:10:15,440 --> 00:10:18,670
‫E di solito fino a questo punto, usiamo sempre e

206
00:10:18,670 --> 00:10:20,160
‫solo pug per creare

207
00:10:20,160 --> 00:10:22,370
‫un modello, quindi passiamo il nome

208
00:10:22,370 --> 00:10:24,780
‫del modello nella funzione di rendering sulla risposta.

209
00:10:24,780 --> 00:10:25,870
‫Destra.

210
00:10:25,870 --> 00:10:27,820
‫Quindi l'abbiamo sempre usato in questo

211
00:10:29,890 --> 00:10:31,723
‫modo res. render, e

212
00:10:31,723 --> 00:10:33,630
‫poi qui il nome del template.

213
00:10:33,630 --> 00:10:34,810
‫Destra?

214
00:10:34,810 --> 00:10:37,370
‫E ciò che fa questa funzione di

215
00:10:37,370 --> 00:10:41,200
‫rendering dietro le quinte è fondamentalmente creare l'HTML basato sul modello

216
00:10:41,200 --> 00:10:43,450
‫pug e quindi inviarlo al client.

217
00:10:43,450 --> 00:10:46,840
‫Ora, in questo caso non vogliamo davvero eseguire il

218
00:10:46,840 --> 00:10:50,400
‫rendering, tutto ciò che vogliamo fare è creare fondamentalmente l'HTML

219
00:10:50,400 --> 00:10:53,960
‫dal modello in modo che possiamo quindi inviare quell'HTML

220
00:10:53,960 --> 00:10:55,110
‫come e-mail.

221
00:10:55,110 --> 00:10:58,520
‫Quindi sostanzialmente definendolo qui come un'opzione HTML in queste

222
00:10:58,520 --> 00:11:00,070
‫opzioni di posta.

223
00:11:00,070 --> 00:11:00,960
‫Va bene?

224
00:11:00,960 --> 00:11:04,900
‫Quindi, ricorda come possiamo specificare testo e HTML.

225
00:11:04,900 --> 00:11:08,790
‫E principalmente siamo interessati all'invio di un'e-mail HTML.

226
00:11:08,790 --> 00:11:11,340
‫Ed ecco perché avremo un modello carlino

227
00:11:11,340 --> 00:11:13,843
‫da cui genereremo questo HTML.

228
00:11:15,130 --> 00:11:16,120
‫Va bene?

229
00:11:16,120 --> 00:11:18,720
‫Quindi non funzionerà in questo modo, ma

230
00:11:18,720 --> 00:11:20,770
‫in realtà abbiamo bisogno del

231
00:11:20,770 --> 00:11:22,173
‫pacchetto pug qui.

232
00:11:24,560 --> 00:11:25,443
‫Quindi,

233
00:11:27,200 --> 00:11:28,780
‫pug in questo modo,

234
00:11:28,780 --> 00:11:32,600
‫e poi dobbiamo usare pug.

235
00:11:32,600 --> 00:11:32,600
‫renderFile.

236
00:11:36,890 --> 00:11:37,723
‫Va bene?

237
00:11:37,723 --> 00:11:39,490
‫E quindi questo prenderà il

238
00:11:39,490 --> 00:11:42,450
‫file e quindi renderà il codice pug in vero HTML.

239
00:11:42,450 --> 00:11:43,283
‫Va bene?

240
00:11:43,283 --> 00:11:48,120
‫E così che possiamo quindi salvare in una variabile HTML.

241
00:11:48,120 --> 00:11:48,953
‫Va bene?

242
00:11:49,870 --> 00:11:52,330
‫Allora, dov'è quel file?

243
00:11:52,330 --> 00:11:55,173
‫Bene, è in dirname, quindi D-I-R name,

244
00:11:56,460 --> 00:11:58,500
‫che ricorda è la posizione

245
00:11:58,500 --> 00:12:00,120
‫dello script attualmente

246
00:12:00,120 --> 00:12:01,960
‫in esecuzione, e quindi è,

247
00:12:01,960 --> 00:12:05,133
‫in questo momento, in questa cartella delle utilità.

248
00:12:06,570 --> 00:12:07,403
‫Va bene?

249
00:12:07,403 --> 00:12:10,223
‫E quindi da lì dobbiamo fare un passo avanti,

250
00:12:12,010 --> 00:12:16,000
‫quindi andare nelle visualizzazioni e da lì andare in una cartella di posta elettronica

251
00:12:16,860 --> 00:12:18,950
‫che creeremo anche in un secondo.

252
00:12:18,950 --> 00:12:19,783
‫E poi

253
00:12:19,783 --> 00:12:22,103
‫c'è dove avremo il file modello.

254
00:12:23,450 --> 00:12:28,650
‫Quindi modello}.

255
00:12:28,650 --> 00:12:28,650
‫carlino.

256
00:12:28,650 --> 00:12:32,340
‫Quindi, per l'e-mail di benvenuto, questo modello

257
00:12:32,340 --> 00:12:34,180
‫si chiamerà benvenuto.

258
00:12:34,180 --> 00:12:38,920
‫E quindi ora creiamolo effettivamente qui nelle viste, creiamo una nuova

259
00:12:38,920 --> 00:12:40,293
‫cartella, e-mail

260
00:12:42,910 --> 00:12:48,677
‫e quindi un nuovo file, benvenuto.

261
00:12:48,677 --> 00:12:48,677
‫carlino.

262
00:12:49,784 --> 00:12:50,660
‫Va bene?

263
00:12:50,660 --> 00:12:52,860
‫E non creeremo davvero questo

264
00:12:52,860 --> 00:12:56,130
‫modello in questo video, ma volevo solo mostrarti

265
00:12:56,130 --> 00:12:58,320
‫come funzionerà tutto questo.

266
00:12:58,320 --> 00:12:59,153
‫Va bene?

267
00:12:59,153 --> 00:13:01,750
‫Quindi questo benvenuto verrà incollato qui

268
00:13:01,750 --> 00:13:06,060
‫nel modello e quindi prenderà quel file dalla cartella delle visualizzazioni.

269
00:13:06,060 --> 00:13:06,893
‫Destra?

270
00:13:06,893 --> 00:13:08,710
‫Quindi, questo è il primo passo.

271
00:13:08,710 --> 00:13:11,043
‫Successivamente, definiamo le opzioni di posta elettronica.

272
00:13:11,980 --> 00:13:16,980
‫Quindi, da ora è questo. a partire dal.

273
00:13:17,110 --> 00:13:17,943
‫Ricordare?

274
00:13:19,060 --> 00:13:20,183
‫Quindi proprio qui.

275
00:13:21,820 --> 00:13:23,710
‫Avanti,

276
00:13:26,130 --> 00:13:30,200
‫abbiamo questo. to, e abbiamo anche il soggetto

277
00:13:30,200 --> 00:13:34,230
‫che è uguale al soggetto che sta arrivando proprio qui, e quindi,

278
00:13:34,230 --> 00:13:37,700
‫sì, in realtà non abbiamo nemmeno bisogno di definire questo

279
00:13:39,550 --> 00:13:41,383
‫e abbiamo il nostro HTML.

280
00:13:42,590 --> 00:13:45,670
‫Quindi così, o ovviamente, non è

281
00:13:45,670 --> 00:13:49,213
‫nemmeno necessario perché è lo stesso nome.

282
00:13:51,760 --> 00:13:55,427
‫Ora, il prossimo, vogliamo includere anche una versione di

283
00:13:55,427 --> 00:13:57,960
‫testo della nostra e-mail nell'e-mail.

284
00:13:57,960 --> 00:13:58,793
‫Va bene?

285
00:13:58,793 --> 00:14:01,750
‫E questo è davvero molto importante perché è migliore per

286
00:14:01,750 --> 00:14:05,560
‫i tassi di consegna della posta elettronica e anche per le cartelle di spam.

287
00:14:05,560 --> 00:14:06,670
‫Va bene?

288
00:14:06,670 --> 00:14:11,130
‫E anche alcune persone preferiscono semplicemente semplici e-mail di testo

289
00:14:11,130 --> 00:14:14,970
‫invece di avere le e-mail HTML più formattate.

290
00:14:14,970 --> 00:14:15,900
‫Va bene?

291
00:14:15,900 --> 00:14:18,830
‫E quindi, in pratica, abbiamo bisogno di un modo

292
00:14:18,830 --> 00:14:21,560
‫per convertire tutto l'HTML in testo semplice.

293
00:14:21,560 --> 00:14:25,760
‫Quindi eliminando tutto l'HTML lasciando solo il contenuto.

294
00:14:25,760 --> 00:14:27,980
‫E per farlo,

295
00:14:27,980 --> 00:14:29,193
‫installeremo

296
00:14:31,640 --> 00:14:36,640
‫un altro pacchetto, quindi questo si chiama html-to-text.

297
00:14:40,640 --> 00:14:41,810
‫Va bene?

298
00:14:41,810 --> 00:14:43,133
‫Includiamolo qui,

299
00:14:46,161 --> 00:14:46,994
‫ToText.

300
00:14:50,520 --> 00:14:54,103
‫require('html-to-text'), in questo modo.

301
00:14:56,150 --> 00:14:57,560
‫Va bene?

302
00:14:57,560 --> 00:15:00,973
‫Ora usiamolo per convertire il nostro HTML.

303
00:15:03,260 --> 00:15:07,080
‫Quindi usiamo htmlToText. fromString e quindi

304
00:15:09,877 --> 00:15:12,340
‫quella stringa viene archiviata in HTML.

305
00:15:13,300 --> 00:15:14,133
‫Destra?

306
00:15:15,620 --> 00:15:18,230
‫Quindi, queste sono le nostre opzioni di posta, e

307
00:15:18,230 --> 00:15:21,160
‫in realtà ho dimenticato qualcosa di molto, molto importante, qui

308
00:15:21,160 --> 00:15:24,130
‫in questo primo passaggio, quindi in questo file di rendering, perché

309
00:15:24,130 --> 00:15:27,200
‫proprio come con la risposta. render, possiamo anche

310
00:15:27,200 --> 00:15:30,010
‫incollare i dati nel file di rendering.

311
00:15:30,010 --> 00:15:32,160
‫E, naturalmente, questo è molto

312
00:15:32,160 --> 00:15:35,390
‫importante se vogliamo effettivamente fare o personalizzare l'e-mail

313
00:15:35,390 --> 00:15:38,283
‫con il nome e anche incollare l'URL.

314
00:15:39,580 --> 00:15:42,590
‫E quindi facciamolo come abbiamo fatto normalmente nella

315
00:15:42,590 --> 00:15:44,053
‫funzione di rendering.

316
00:15:46,290 --> 00:15:51,290
‫Quindi questo è firstName, invialo a questo. firstName e l'URL

317
00:15:53,733 --> 00:15:58,733
‫è questo. url, e incolliamo anche l'oggetto e

318
00:15:58,910 --> 00:16:01,300
‫vedrai un po 'più tardi

319
00:16:02,260 --> 00:16:04,623
‫perché ne abbiamo bisogno.

320
00:16:06,690 --> 00:16:08,300
‫Va bene?

321
00:16:08,300 --> 00:16:11,210
‫Quindi, ora creiamo finalmente un trasporto utilizzando

322
00:16:11,210 --> 00:16:13,680
‫la nostra funzione di creazione del

323
00:16:13,680 --> 00:16:15,940
‫trasporto, quindi inviamo l'e-mail.

324
00:16:15,940 --> 00:16:20,867
‫Quindi, abbastanza giusto, è questo. creareTrasporto.

325
00:16:23,670 --> 00:16:28,670
‫Quindi, ricorda che questo è solo questo metodo qui, questo, e ha

326
00:16:29,200 --> 00:16:30,960
‫lo stesso identico nome

327
00:16:30,960 --> 00:16:33,980
‫di questa funzione qui proveniente da nodemailer.

328
00:16:33,980 --> 00:16:35,450
‫Quindi è

329
00:16:35,450 --> 00:16:38,583
‫un po' confuso, quindi chiamiamolo newTransport qui.

330
00:16:40,380 --> 00:16:43,847
‫Ok, quindi anche qui c'è il nuovo Trasporto, così c'è

331
00:16:45,370 --> 00:16:47,520
‫un po' meno di confusione.

332
00:16:47,520 --> 00:16:48,500
‫Va bene?

333
00:16:48,500 --> 00:16:50,783
‫Ora ricordiamo come lo abbiamo fatto qui prima.

334
00:16:51,620 --> 00:16:53,330
‫Quindi avevamo il nostro

335
00:16:53,330 --> 00:16:55,700
‫trasportatore, che abbiamo creato separatamente in

336
00:16:55,700 --> 00:17:00,360
‫questo caso, e poi su quello abbiamo concatenato sendMail con le opzioni.

337
00:17:00,360 --> 00:17:04,373
‫Quindi prendiamolo qui, cancelliamo tutto il codice rimanente.

338
00:17:07,220 --> 00:17:09,320
‫Quindi fondamentalmente mettilo qui come riferimento.

339
00:17:10,280 --> 00:17:11,130
‫Va bene?

340
00:17:11,130 --> 00:17:13,123
‫Quindi questo trasportatore ora è questo.

341
00:17:16,470 --> 00:17:17,700
‫Va bene?

342
00:17:17,700 --> 00:17:21,170
‫E così via, inviamo e-mail a catena e poi con

343
00:17:21,170 --> 00:17:23,993
‫le opzioni di posta che abbiamo definito qui.

344
00:17:25,010 --> 00:17:27,040
‫Quindi, dobbiamo aspettare tutto

345
00:17:27,040 --> 00:17:30,220
‫questo, perché, ovviamente, è una funzione asincrona.

346
00:17:30,220 --> 00:17:33,043
‫E quindi ora segniamo questo qui come asincrono.

347
00:17:34,880 --> 00:17:35,730
‫Va bene?

348
00:17:35,730 --> 00:17:40,083
‫E quindi ora dobbiamo anche aspettare la funzione qui.

349
00:17:41,490 --> 00:17:42,323
‫Va bene?

350
00:17:42,323 --> 00:17:46,120
‫Perchè questo. send ora è davvero una funzione asincrona.

351
00:17:46,120 --> 00:17:49,800
‫E quindi qui aspettiamo che questa funzione ritorni solo non appena

352
00:17:49,800 --> 00:17:52,000
‫l'e-mail è stata effettivamente inviata.

353
00:17:53,120 --> 00:17:56,533
‫E quindi, ovviamente, contrassegna anche questo come asincrono.

354
00:17:58,130 --> 00:17:59,380
‫Stupendo.

355
00:17:59,380 --> 00:18:02,920
‫In realtà è tutto per questa classe.

356
00:18:02,920 --> 00:18:05,523
‫Quindi non abbiamo più bisogno di questo esempio.

357
00:18:06,450 --> 00:18:07,283
‫Va bene?

358
00:18:07,283 --> 00:18:09,740
‫E così nel prossimo video, andremo effettivamente

359
00:18:09,740 --> 00:18:13,570
‫avanti e utilizzeremo questa nuova classe per inviare un'e-mail di benvenuto.

360
00:18:13,570 --> 00:18:16,570
‫Quindi, ricapitola molto rapidamente quello che abbiamo fatto qui.

361
00:18:16,570 --> 00:18:18,600
‫Quindi abbiamo creato una nuova classe di

362
00:18:18,600 --> 00:18:20,730
‫posta elettronica dalla quale possiamo creare oggetti di posta

363
00:18:20,730 --> 00:18:23,610
‫elettronica che possiamo quindi utilizzare per inviare messaggi di posta elettronica effettivi.

364
00:18:23,610 --> 00:18:28,010
‫E per creare un nuovo oggetto e-mail, incolleremo l'utente e anche

365
00:18:28,010 --> 00:18:31,330
‫un URL che vogliamo che sia in quell'e-mail.

366
00:18:31,330 --> 00:18:35,160
‫Quindi qui assegniamo tutte quelle cose all'oggetto corrente, e

367
00:18:35,160 --> 00:18:37,940
‫anche alcune altre impostazioni che vogliamo

368
00:18:37,940 --> 00:18:41,890
‫avere a disposizione, come il nome e l'e-mail del mittente.

369
00:18:41,890 --> 00:18:44,000
‫Quindi fondamentalmente per astrarre queste informazioni

370
00:18:44,000 --> 00:18:45,990
‫dalla funzione di invio e

371
00:18:45,990 --> 00:18:48,550
‫per avere tutto in un posto centrale.

372
00:18:48,550 --> 00:18:51,360
‫Quindi abbiamo qui una nuova funzione di

373
00:18:51,360 --> 00:18:54,290
‫trasporto che rende davvero facile creare trasporti diversi

374
00:18:54,290 --> 00:18:55,940
‫per ambienti diversi.

375
00:18:55,940 --> 00:18:58,500
‫E così ancora una volta, astraendo

376
00:18:58,500 --> 00:19:00,770
‫quella logica dall'effettiva funzione

377
00:19:00,770 --> 00:19:04,093
‫di invio che dovrebbe preoccuparsi solo dell'invio dell'e-mail.

378
00:19:05,120 --> 00:19:05,953
‫Va bene?

379
00:19:05,953 --> 00:19:09,500
‫Quindi ecco quella funzione di invio che accetta un

380
00:19:09,500 --> 00:19:14,240
‫modello e un oggetto e, in base a ciò, crea l'HTML da un

381
00:19:14,240 --> 00:19:17,370
‫modello pug che verrà quindi impostato nelle opzioni

382
00:19:17,370 --> 00:19:19,830
‫di posta elettronica, che, alla fine

383
00:19:19,830 --> 00:19:23,150
‫della funzione, alla fine essere inviato in questa riga

384
00:19:23,150 --> 00:19:24,470
‫di codice.

385
00:19:24,470 --> 00:19:25,390
‫Va bene?

386
00:19:25,390 --> 00:19:27,880
‫Ma non sarà questa funzione di invio

387
00:19:27,880 --> 00:19:29,950
‫che useremo nel nostro codice.

388
00:19:29,950 --> 00:19:31,840
‫Quindi, invece, creeremo una funzione

389
00:19:31,840 --> 00:19:34,183
‫diversa per ogni tipo di email

390
00:19:34,183 --> 00:19:35,417
‫che vogliamo inviare.

391
00:19:35,417 --> 00:19:39,380
‫E il primo che ho creato qui è sendWelcome.

392
00:19:39,380 --> 00:19:40,213
‫Va bene?

393
00:19:40,213 --> 00:19:43,440
‫E così per sendWelcome, in pratica, prepariamo il

394
00:19:43,440 --> 00:19:45,420
‫nome del modello

395
00:19:45,420 --> 00:19:48,480
‫come benvenuto e l'oggetto come questa stringa.

396
00:19:48,480 --> 00:19:49,313
‫Va bene?

397
00:19:49,313 --> 00:19:52,723
‫Quindi, spero che abbia avuto senso, e ci vediamo tra un secondo.

