﻿1
00:00:00,790 --> 00:00:02,400
‫Instructeur : La partie de la

2
00:00:02,400 --> 00:00:03,960
‫section concernant le téléchargement

3
00:00:03,960 --> 00:00:07,300
‫de fichiers étant terminée, tournons maintenant notre attention vers l'envoi d'e-mails.

4
00:00:07,300 --> 00:00:09,610
‫Et en fait, nous avons déjà envoyé des

5
00:00:09,610 --> 00:00:13,170
‫e-mails auparavant, pour la réinitialisation du mot de passe, mais dans les deux prochaines

6
00:00:13,170 --> 00:00:16,050
‫conférences, nous allons amener cela à un tout autre niveau.

7
00:00:16,050 --> 00:00:18,760
‫Et ce que nous allons faire, c'est créer des

8
00:00:18,760 --> 00:00:21,350
‫modèles d'e-mails avec carlin et envoyer de vrais e-mails

9
00:00:21,350 --> 00:00:23,270
‫à l'aide du service SendGrid.

10
00:00:23,270 --> 00:00:25,220
‫Et maintenant, dans cette première conférence, nous

11
00:00:25,220 --> 00:00:27,630
‫allons créer un gestionnaire de messagerie plus robuste que

12
00:00:27,630 --> 00:00:29,313
‫celui que nous avions auparavant.

13
00:00:30,870 --> 00:00:34,030
‫Alors, ouvrons notre dossier utilitaires, puis

14
00:00:34,030 --> 00:00:38,510
‫ici, rappelez-vous, nous avons déjà un fichier de courrier électronique.

15
00:00:38,510 --> 00:00:40,100
‫Mais pour le moment,

16
00:00:40,100 --> 00:00:43,660
‫ce que nous avons ici n'est qu'un gestionnaire d'envoi d'e-mails

17
00:00:43,660 --> 00:00:46,810
‫très simple, qui n'est pas capable d'accepter beaucoup d'options.

18
00:00:46,810 --> 00:00:48,120
‫Et donc maintenant, nous

19
00:00:48,120 --> 00:00:50,190
‫allons construire une solution beaucoup plus robuste ici.

20
00:00:50,190 --> 00:00:51,450
‫Très bien?

21
00:00:51,450 --> 00:00:53,833
‫Donc ce que je vais faire, c'est créer

22
00:00:55,360 --> 00:00:57,503
‫une classe, et cette classe s'appellera email.

23
00:00:58,750 --> 00:01:01,690
‫Donc module. exportations, et donc

24
00:01:01,690 --> 00:01:03,950
‫aussi cette classe est ce que

25
00:01:03,950 --> 00:01:07,103
‫nous allons exporter à partir de ce fichier.

26
00:01:09,580 --> 00:01:13,340
‫Et puis, comme toujours, une classe a besoin d'une fonction constructeur,

27
00:01:13,340 --> 00:01:16,170
‫qui est essentiellement la fonction qui va

28
00:01:16,170 --> 00:01:19,300
‫s'exécuter lorsqu'un nouvel objet est créé via cette classe.

29
00:01:19,300 --> 00:01:20,910
‫Voyons maintenant comment

30
00:01:20,910 --> 00:01:23,393
‫nous utiliserions cette classe dans la pratique.

31
00:01:24,960 --> 00:01:26,770
‫Et donc l'idée, en gros,

32
00:01:26,770 --> 00:01:28,840
‫chaque fois que nous voulons envoyer un

33
00:01:28,840 --> 00:01:32,960
‫nouvel e-mail, est d'importer cette classe d'e-mails et de l'utiliser ensuite comme ceci.

34
00:01:32,960 --> 00:01:34,713
‫Donc, en créant un

35
00:01:35,970 --> 00:01:38,490
‫nouvel e-mail, puis dans celui-ci, nous voulons coller

36
00:01:38,490 --> 00:01:41,150
‫un utilisateur, et cet utilisateur contiendra alors l'adresse e-mail,

37
00:01:41,150 --> 00:01:44,563
‫ainsi que le nom au cas où nous voudrions personnaliser l'e-mail.

38
00:01:45,800 --> 00:01:47,580
‫Et aussi une URL.

39
00:01:47,580 --> 00:01:49,120
‫Et un bon exemple

40
00:01:49,120 --> 00:01:53,200
‫pour celui-ci est par exemple l'URL de réinitialisation pour réinitialiser le mot de passe.

41
00:01:53,200 --> 00:01:54,033
‫D'accord?

42
00:01:54,033 --> 00:01:56,660
‫Donc, un nouvel objet e-mail, puis là,

43
00:01:56,660 --> 00:01:59,000
‫nous voulons appeler la méthode qui

44
00:01:59,000 --> 00:02:00,570
‫va réellement envoyer l'e-mail.

45
00:02:00,570 --> 00:02:02,843
‫Alors, disons sendWelcome.

46
00:02:04,180 --> 00:02:07,410
‫Et pour que celui-ci soit envoyé chaque

47
00:02:07,410 --> 00:02:10,910
‫fois qu'un nouvel utilisateur s'inscrit à notre application.

48
00:02:10,910 --> 00:02:11,743
‫Très bien?

49
00:02:11,743 --> 00:02:14,630
‫Nous aurons alors également envoyer la réinitialisation du mot de passe.

50
00:02:14,630 --> 00:02:16,480
‫Et la façon dont

51
00:02:16,480 --> 00:02:18,950
‫nous allons configurer tout cela rendra très

52
00:02:18,950 --> 00:02:21,490
‫facile l'ajout de nouvelles méthodes similaires à

53
00:02:21,490 --> 00:02:24,450
‫celle-ci pour envoyer différents e-mails pour différents scénarios.

54
00:02:24,450 --> 00:02:25,370
‫Très bien?

55
00:02:25,370 --> 00:02:28,400
‫Quoi qu'il en soit, puisque nous collons l'utilisateur et l'URL

56
00:02:28,400 --> 00:02:31,670
‫dans un nouvel e-mail, eh bien, notre constructeur doit alors les

57
00:02:31,670 --> 00:02:33,633
‫prendre en compte comme arguments.

58
00:02:34,720 --> 00:02:36,560
‫Donc utilisateur et URL.

59
00:02:36,560 --> 00:02:40,340
‫Et donc ce qui se passe dans ce constructeur est que this. à sera

60
00:02:43,020 --> 00:02:47,130
‫égal à l'utilisateur. email Ensuite, nous voulons

61
00:02:49,926 --> 00:02:53,210
‫également définir le prénom de l'utilisateur, encore

62
00:02:53,210 --> 00:02:56,433
‫une fois afin de personnaliser essentiellement l'email.

63
00:02:59,903 --> 00:03:03,170
‫Et c'est donc l'utilisateur. name et

64
00:03:03,170 --> 00:03:08,170
‫divisons-le et prenons uniquement le premier élément du tableau résultant.

65
00:03:09,530 --> 00:03:11,210
‫Nous avons donc

66
00:03:11,210 --> 00:03:16,210
‫fait celui-ci avant, mais aussi celui-ci. url est égal à l'URL entrante.

67
00:03:17,010 --> 00:03:22,010
‫Enfin, définissons également ceci. d'ici.

68
00:03:22,500 --> 00:03:24,450
‫donc essentiellement au niveau de l'objet.

69
00:03:24,450 --> 00:03:26,970
‫Et donc chaque objet créé à partir de cette

70
00:03:26,970 --> 00:03:28,830
‫classe obtiendra alors cette propriété.

71
00:03:28,830 --> 00:03:32,720
‫Et donc celui-ci sera similaire à ce que nous avons ici.

72
00:03:32,720 --> 00:03:35,020
‫Donc, c'est fondamentalement cela à partir

73
00:03:35,020 --> 00:03:36,760
‫de, alors copions-le, mais

74
00:03:36,760 --> 00:03:40,230
‫c'est bien de l'avoir dans un endroit central comme celui-ci.

75
00:03:40,230 --> 00:03:42,200
‫Maintenant, une chose que je veux

76
00:03:42,200 --> 00:03:45,090
‫vraiment faire, c'est de définir cette adresse e-mail ici

77
00:03:45,090 --> 00:03:46,770
‫comme une variable de

78
00:03:46,770 --> 00:03:48,740
‫configuration, et donc une variable d'environnement

79
00:03:48,740 --> 00:03:50,440
‫que nous pouvons très facilement

80
00:03:50,440 --> 00:03:54,073
‫modifier en manipulant la configuration. env fichier.

81
00:03:55,774 --> 00:03:56,607
‫Très bien?

82
00:03:57,940 --> 00:04:00,100
‫Appelons donc celui-ci EMAIL_FROM.

83
00:04:02,490 --> 00:04:06,530
‫Et puis nous ne voulons que l'adresse e-mail elle-même.

84
00:04:06,530 --> 00:04:07,363
‫Très bien?

85
00:04:08,560 --> 00:04:10,840
‫Donc un autre cas où il est très

86
00:04:10,840 --> 00:04:12,353
‫utile d'utiliser des variables d'environnement.

87
00:04:13,260 --> 00:04:15,360
‫Et maintenant, faisons-en une chaîne de modèle.

88
00:04:18,400 --> 00:04:20,840
‫Et bien sûr, branchez-le ici.

89
00:04:20,840 --> 00:04:23,153
‫C'est donc le processus. env. EMAIL DE.

90
00:04:28,540 --> 00:04:30,930
‫Ensuite, créons une méthode ici afin

91
00:04:30,930 --> 00:04:33,230
‫de créer le transport.

92
00:04:33,230 --> 00:04:35,563
‫Tellement similaire à ce que nous avons ici.

93
00:04:37,640 --> 00:04:39,347
‫Alors créez Transport.

94
00:04:43,450 --> 00:04:46,280
‫Et maintenant, ici, nous voulons réellement avoir des transports

95
00:04:46,280 --> 00:04:48,890
‫différents, que nous soyons en production ou non.

96
00:04:48,890 --> 00:04:50,170
‫Ainsi, lorsque nous sommes

97
00:04:50,170 --> 00:04:52,470
‫en production, nous voulons en fait envoyer de

98
00:04:52,470 --> 00:04:55,540
‫vrais e-mails, et nous le ferons un peu plus tard en

99
00:04:55,540 --> 00:04:57,890
‫utilisant SendGrid, mais si nous ne sommes pas

100
00:04:57,890 --> 00:05:00,730
‫en production, nous voulons toujours utiliser notre application Mailtrap comme

101
00:05:00,730 --> 00:05:03,270
‫nous le faisions avant quand nous envoyons des e-mails.

102
00:05:03,270 --> 00:05:07,020
‫Ainsi, au lieu que l'e-mail soit envoyé à une véritable adresse e-mail,

103
00:05:07,020 --> 00:05:10,730
‫il sera bloqué dans notre boîte de réception Mailtrap afin que

104
00:05:10,730 --> 00:05:12,260
‫nous puissions réellement l'examiner

105
00:05:12,260 --> 00:05:13,843
‫dans notre processus de développement.

106
00:05:14,950 --> 00:05:18,343
‫Donc, ce transporteur sera exactement le même que celui-ci, alors copions-le simplement

107
00:05:19,870 --> 00:05:25,277
‫mais disons d'abord si (process.

108
00:05:25,277 --> 00:05:25,277
‫env. NODE_ENV).

109
00:05:30,360 --> 00:05:32,360
‫Alors, rappelez-vous, c'est ainsi que nous vérifions si

110
00:05:32,360 --> 00:05:34,110
‫nous sommes en production ou non.

111
00:05:36,390 --> 00:05:38,230
‫Et donc si c'est en production,

112
00:05:38,230 --> 00:05:39,620
‫et donc si

113
00:05:39,620 --> 00:05:43,830
‫nous sommes en production, alors nous voulons créer un transporteur pour SendGrid.

114
00:05:43,830 --> 00:05:45,890
‫Mettons donc cela ici, et encore une fois,

115
00:05:45,890 --> 00:05:47,613
‫nous le ferons plus tard.

116
00:05:49,170 --> 00:05:51,410
‫Pour l'instant, revenons juste quelque chose d'ici.

117
00:05:51,410 --> 00:05:53,133
‫Peu importe, disons un.

118
00:05:54,680 --> 00:05:55,513
‫Très bien?

119
00:05:56,750 --> 00:05:58,840
‫Et puis en gros sinon nous

120
00:05:58,840 --> 00:06:02,493
‫voulons retourner ce nodemailer. créerTransport.

121
00:06:05,166 --> 00:06:05,999
‫D'accord?

122
00:06:05,999 --> 00:06:06,840
‫Donc,

123
00:06:06,840 --> 00:06:11,293
‫ce transport ici renverra essentiellement un nouveau transport nodemailer comme celui-ci.

124
00:06:12,280 --> 00:06:14,660
‫Ou, au contraire quand on est

125
00:06:14,660 --> 00:06:17,333
‫en production, alors celui qui va être là.

126
00:06:18,500 --> 00:06:19,333
‫D'accord?

127
00:06:19,333 --> 00:06:21,020
‫Alors supprimons-le d'ici.

128
00:06:23,930 --> 00:06:26,773
‫Aussi, nous voulons supprimer celui-ci.

129
00:06:32,970 --> 00:06:35,480
‫Et maintenant créons la méthode send.

130
00:06:35,480 --> 00:06:37,520
‫Et donc ce sera

131
00:06:37,520 --> 00:06:39,610
‫la méthode qui fera l'envoi réel.

132
00:06:39,610 --> 00:06:40,443
‫D'accord?

133
00:06:40,443 --> 00:06:43,650
‫Et celui-ci recevra un modèle et un sujet.

134
00:06:43,650 --> 00:06:45,150
‫Et vous comprendrez un

135
00:06:45,150 --> 00:06:48,003
‫peu mieux pourquoi c'est une fois tout ce cours terminé.

136
00:06:49,270 --> 00:06:50,103
‫D'accord?

137
00:06:51,550 --> 00:06:53,513
‫Donc modèle et sujet.

138
00:06:56,050 --> 00:06:58,553
‫Mettons donc un commentaire ici sur ce que cela va faire.

139
00:07:01,170 --> 00:07:03,600
‫Et maintenant, avant d'écrire cette fonction, laissez-moi vous

140
00:07:03,600 --> 00:07:05,690
‫montrer comment nous allons l'utiliser, et

141
00:07:05,690 --> 00:07:08,753
‫donc pourquoi nous avons besoin du modèle et du sujet ici.

142
00:07:10,890 --> 00:07:12,893
‫Alors, rappelez-vous comment nous avons

143
00:07:12,893 --> 00:07:16,890
‫dit ici que nous allons avoir une méthode appelée sendWelcome,

144
00:07:16,890 --> 00:07:21,890
‫et aussi une méthode pour envoyer un e-mail de réinitialisation de mot de passe.

145
00:07:21,900 --> 00:07:26,353
‫Et donc, ajoutons maintenant cela ici, alors envoyezBienvenue.

146
00:07:28,460 --> 00:07:31,430
‫Et celui-ci ne reçoit aucun argument et tout ce

147
00:07:31,430 --> 00:07:34,410
‫qu'il fait en réalité, c'est d'appeler send avec le modèle

148
00:07:35,470 --> 00:07:37,030
‫et le sujet que

149
00:07:37,030 --> 00:07:38,690
‫nous voulons pour cet e-mail.

150
00:07:38,690 --> 00:07:39,523
‫D'accord?

151
00:07:39,523 --> 00:07:41,800
‫Et encore une fois, cela rend très facile

152
00:07:41,800 --> 00:07:43,370
‫la création de différents

153
00:07:43,370 --> 00:07:45,480
‫e-mails pour toutes sortes de situations différentes.

154
00:07:45,480 --> 00:07:46,550
‫D'accord?

155
00:07:46,550 --> 00:07:49,297
‫Nous avons donc cette fonction d'envoi de route

156
00:07:49,297 --> 00:07:51,790
‫ici, puis toutes ces fonctions plus spécifiques,

157
00:07:51,790 --> 00:07:55,100
‫qui appelleront à leur tour la fonction d'envoi du routeur

158
00:07:55,100 --> 00:07:57,150
‫qui effectue le travail réel.

159
00:07:57,150 --> 00:07:58,500
‫D'accord?

160
00:07:58,500 --> 00:08:01,950
‫Et en fait, c'est ici. envoyer car bien

161
00:08:01,950 --> 00:08:03,970
‫sûr ces méthodes ici, elles

162
00:08:03,970 --> 00:08:06,600
‫vont être définies sur l'objet courant.

163
00:08:06,600 --> 00:08:07,643
‫Et c'est donc ça.

164
00:08:09,530 --> 00:08:12,113
‫Ensuite, nous collons ici le nom du modèle.

165
00:08:14,280 --> 00:08:16,630
‫Et donc ce nom de modèle que j'ai

166
00:08:16,630 --> 00:08:19,020
‫mis ici, sera à l'avenir un modèle de carlin

167
00:08:19,020 --> 00:08:20,280
‫que nous allons créer.

168
00:08:20,280 --> 00:08:22,320
‫Donc, en fait, dans la prochaine conférence,

169
00:08:22,320 --> 00:08:24,600
‫nous allons créer ce modèle de carlin afin

170
00:08:24,600 --> 00:08:26,523
‫d'envoyer cet e-mail de bienvenue.

171
00:08:27,710 --> 00:08:28,543
‫D'accord?

172
00:08:28,543 --> 00:08:29,763
‫Et puis juste la ligne d'objet.

173
00:08:31,250 --> 00:08:35,320
‫Disons 'Bienvenue dans la famille Natours ! ' Et donc, juste

174
00:08:37,550 --> 00:08:40,920
‫comme ça, nous n'avons pas à nous soucier

175
00:08:40,920 --> 00:08:43,210
‫des détails de mise en œuvre

176
00:08:43,210 --> 00:08:45,260
‫lorsque nous envoyons réellement l'e-mail.

177
00:08:45,260 --> 00:08:47,290
‫Ainsi, par exemple, au point de

178
00:08:47,290 --> 00:08:49,510
‫notre code où nous voulons envoyer l'e-mail

179
00:08:49,510 --> 00:08:51,900
‫de bienvenue, nous n'avons pas à nous soucier

180
00:08:51,900 --> 00:08:54,130
‫des noms de modèles ou des lignes d'objet.

181
00:08:54,130 --> 00:08:57,130
‫Tout ce que nous allons faire, c'est dire envoyer un e-mail de

182
00:08:57,130 --> 00:08:58,260
‫bienvenue et c'est tout.

183
00:08:58,260 --> 00:09:00,380
‫Et puis

184
00:09:00,380 --> 00:09:03,563
‫notre classe s'occupera de l'implémentation.

185
00:09:04,880 --> 00:09:05,780
‫Très bien?

186
00:09:05,780 --> 00:09:09,023
‫Quoi qu'il en soit, construisons maintenant cette fonction d'envoi.

187
00:09:10,180 --> 00:09:14,560
‫Et donc, ce que nous allons faire dans cette fonction,

188
00:09:14,560 --> 00:09:19,560
‫c'est d'abord rendre le code HTML de l'e-mail basé sur un

189
00:09:20,820 --> 00:09:22,663
‫modèle de carlin.

190
00:09:25,650 --> 00:09:27,550
‫Donc, fondamentalement, celui que

191
00:09:27,550 --> 00:09:29,823
‫nous collons ici avec le modèle.

192
00:09:31,750 --> 00:09:34,533
‫Ensuite, définissez les options de courrier électronique, et

193
00:09:36,570 --> 00:09:40,883
‫cela sera encore une fois très similaire à celui-ci, et en fait, laissez-moi

194
00:09:41,750 --> 00:09:43,530
‫aller de l'avant et

195
00:09:43,530 --> 00:09:46,453
‫le couper à partir d'ici et le coller ici.

196
00:09:48,130 --> 00:09:49,000
‫D'accord?

197
00:09:49,000 --> 00:09:51,600
‫Bien sûr, ce ne sera pas exactement la même chose, mais

198
00:09:51,600 --> 00:09:53,573
‫nous laisserons cela un peu plus tard.

199
00:09:54,500 --> 00:09:55,333
‫Très bien?

200
00:09:55,333 --> 00:09:56,323
‫Et puis

201
00:09:58,690 --> 00:10:01,423
‫enfin, créez un transport et envoyez un e-mail.

202
00:10:06,930 --> 00:10:07,880
‫D'accord?

203
00:10:07,880 --> 00:10:10,530
‫Et voilà, je vais laisser celui-là pour plus tard aussi.

204
00:10:13,120 --> 00:10:15,440
‫Donc, en commençant par le point numéro un.

205
00:10:15,440 --> 00:10:18,670
‫Et généralement jusqu'à ce point, nous n'utilisons que pug pour

206
00:10:18,670 --> 00:10:20,160
‫créer un modèle, puis

207
00:10:20,160 --> 00:10:22,370
‫nous passons le nom du modèle

208
00:10:22,370 --> 00:10:24,780
‫dans la fonction de rendu sur la réponse.

209
00:10:24,780 --> 00:10:25,870
‫À droite.

210
00:10:25,870 --> 00:10:27,820
‫Donc, nous l'avons toujours utilisé comme

211
00:10:29,890 --> 00:10:31,723
‫ceci res. render, puis

212
00:10:31,723 --> 00:10:33,630
‫ici le nom du template.

213
00:10:33,630 --> 00:10:34,810
‫À droite?

214
00:10:34,810 --> 00:10:37,370
‫Et ce que cette fonction de rendu fait

215
00:10:37,370 --> 00:10:41,200
‫dans les coulisses est de créer essentiellement le code HTML basé sur le

216
00:10:41,200 --> 00:10:43,450
‫modèle carlin, puis de l'envoyer au client.

217
00:10:43,450 --> 00:10:46,840
‫Maintenant, dans ce cas, nous ne voulons pas vraiment effectuer le

218
00:10:46,840 --> 00:10:50,400
‫rendu, tout ce que nous voulons faire est de créer le HTML

219
00:10:50,400 --> 00:10:53,960
‫à partir du modèle afin que nous puissions ensuite envoyer ce

220
00:10:53,960 --> 00:10:55,110
‫HTML comme e-mail.

221
00:10:55,110 --> 00:10:58,520
‫Donc, en gros, le définir ici comme une option HTML dans

222
00:10:58,520 --> 00:11:00,070
‫ces options de messagerie.

223
00:11:00,070 --> 00:11:00,960
‫D'accord?

224
00:11:00,960 --> 00:11:04,900
‫Alors, rappelez-vous comment nous pouvons spécifier du texte et du HTML.

225
00:11:04,900 --> 00:11:08,790
‫Et surtout, nous sommes intéressés par l'envoi d'un e-mail HTML.

226
00:11:08,790 --> 00:11:11,340
‫Et c'est pourquoi nous allons avoir un modèle de carlin

227
00:11:11,340 --> 00:11:13,843
‫à partir duquel nous allons générer ce code HTML.

228
00:11:15,130 --> 00:11:16,120
‫D'accord?

229
00:11:16,120 --> 00:11:18,720
‫Donc ça ne va pas fonctionner comme ça, mais à

230
00:11:18,720 --> 00:11:20,770
‫la place nous devons en fait exiger

231
00:11:20,770 --> 00:11:22,173
‫le paquet pug ici.

232
00:11:24,560 --> 00:11:25,443
‫Alors,

233
00:11:27,200 --> 00:11:28,780
‫carlin comme ça, et

234
00:11:28,780 --> 00:11:32,600
‫ensuite nous devons utiliser carlin.

235
00:11:32,600 --> 00:11:32,600
‫renderFile.

236
00:11:36,890 --> 00:11:37,723
‫D'accord?

237
00:11:37,723 --> 00:11:39,490
‫Et donc cela va prendre

238
00:11:39,490 --> 00:11:42,450
‫le fichier et ensuite rendre le code carlin en vrai HTML.

239
00:11:42,450 --> 00:11:43,283
‫D'accord?

240
00:11:43,283 --> 00:11:48,120
‫Et pour que nous puissions ensuite enregistrer dans une variable HTML.

241
00:11:48,120 --> 00:11:48,953
‫Très bien?

242
00:11:49,870 --> 00:11:52,330
‫Alors, où est ce fichier ?

243
00:11:52,330 --> 00:11:55,173
‫Eh bien, c'est à dirname, donc le nom

244
00:11:56,460 --> 00:11:58,500
‫D-I-R, qui se souvient est

245
00:11:58,500 --> 00:12:00,120
‫l'emplacement du script

246
00:12:00,120 --> 00:12:01,960
‫en cours d'exécution, et c'est

247
00:12:01,960 --> 00:12:05,133
‫donc, en ce moment, dans ce dossier utilitaires.

248
00:12:06,570 --> 00:12:07,403
‫D'accord?

249
00:12:07,403 --> 00:12:10,223
‫Et donc à partir de là, nous devons monter d'un cran,

250
00:12:12,010 --> 00:12:16,000
‫puis aller dans les vues, et à partir de là, aller dans un dossier d'e-mails que

251
00:12:16,860 --> 00:12:18,950
‫nous allons également créer dans une seconde.

252
00:12:18,950 --> 00:12:19,783
‫Et puis

253
00:12:19,783 --> 00:12:22,103
‫c'est là que nous allons avoir le fichier modèle.

254
00:12:23,450 --> 00:12:28,650
‫Donc modèle}.

255
00:12:28,650 --> 00:12:28,650
‫carlin.

256
00:12:28,650 --> 00:12:32,340
‫Donc, pour l'e-mail de bienvenue, ce modèle

257
00:12:32,340 --> 00:12:34,180
‫s'appellera bienvenue.

258
00:12:34,180 --> 00:12:38,920
‫Et donc créons maintenant cela ici dans les vues, créons un

259
00:12:38,920 --> 00:12:40,293
‫nouveau dossier, un

260
00:12:42,910 --> 00:12:45,623
‫e-mail, puis dans ce nouveau fichier,

261
00:12:47,730 --> 00:12:48,677
‫bienvenue. carlin.

262
00:12:49,784 --> 00:12:50,660
‫D'accord?

263
00:12:50,660 --> 00:12:52,860
‫Et nous n'allons pas vraiment créer ce

264
00:12:52,860 --> 00:12:56,130
‫modèle dans cette vidéo, mais je voulais juste vous montrer

265
00:12:56,130 --> 00:12:58,320
‫comment tout cela va fonctionner.

266
00:12:58,320 --> 00:12:59,153
‫D'accord?

267
00:12:59,153 --> 00:13:01,750
‫Donc, cet accueil sera collé ici dans

268
00:13:01,750 --> 00:13:06,060
‫le modèle, puis il récupérera ce fichier dans le dossier des vues.

269
00:13:06,060 --> 00:13:06,893
‫À droite?

270
00:13:06,893 --> 00:13:08,710
‫Donc, c'est la première étape.

271
00:13:08,710 --> 00:13:11,043
‫Ensuite, définissons les options de courrier électronique.

272
00:13:11,980 --> 00:13:16,980
‫Donc, à partir de maintenant, c'est ça. à partir de.

273
00:13:17,110 --> 00:13:17,943
‫Rappelles toi?

274
00:13:19,060 --> 00:13:20,183
‫Alors juste ici.

275
00:13:21,820 --> 00:13:23,710
‫Ensuite,

276
00:13:26,130 --> 00:13:30,200
‫nous avons ceci. à, et nous avons aussi le

277
00:13:30,200 --> 00:13:34,230
‫sujet qui est égal au sujet qui vient ici, et donc, ouais,

278
00:13:34,230 --> 00:13:37,700
‫en fait, nous n'avons même pas besoin de définir celui-ci

279
00:13:39,550 --> 00:13:41,383
‫et nous avons notre HTML.

280
00:13:42,590 --> 00:13:45,670
‫Alors comme ça, ou bien sûr, ce

281
00:13:45,670 --> 00:13:49,213
‫n'est même pas nécessaire car c'est le même nom.

282
00:13:51,760 --> 00:13:55,427
‫Maintenant, nous souhaitons également inclure une version texte

283
00:13:55,427 --> 00:13:57,960
‫de notre e-mail dans l'e-mail.

284
00:13:57,960 --> 00:13:58,793
‫D'accord?

285
00:13:58,793 --> 00:14:01,750
‫Et c'est en fait très important car c'est mieux pour

286
00:14:01,750 --> 00:14:05,560
‫les taux de livraison des e-mails et aussi pour les dossiers de spam.

287
00:14:05,560 --> 00:14:06,670
‫Très bien?

288
00:14:06,670 --> 00:14:11,130
‫Et aussi, certaines personnes préfèrent simplement les e-mails en texte

289
00:14:11,130 --> 00:14:14,970
‫simple plutôt que les e-mails HTML plus formatés.

290
00:14:14,970 --> 00:14:15,900
‫Très bien?

291
00:14:15,900 --> 00:14:18,830
‫Et donc fondamentalement, nous avons besoin d'un moyen de

292
00:14:18,830 --> 00:14:21,560
‫convertir tout le HTML en texte simple.

293
00:14:21,560 --> 00:14:25,760
‫Donc, en supprimant tout le HTML en ne laissant que le contenu.

294
00:14:25,760 --> 00:14:27,980
‫Et pour ce faire,

295
00:14:27,980 --> 00:14:29,193
‫nous allons

296
00:14:31,640 --> 00:14:36,640
‫installer encore un autre paquet, et donc celui-ci s'appelle html-to-text.

297
00:14:40,640 --> 00:14:41,810
‫Très bien?

298
00:14:41,810 --> 00:14:43,133
‫Incluons cela ici,

299
00:14:46,161 --> 00:14:46,994
‫ToText.

300
00:14:50,520 --> 00:14:54,103
‫require('html-to-text'), comme ceci.

301
00:14:56,150 --> 00:14:57,560
‫D'accord?

302
00:14:57,560 --> 00:15:00,973
‫Maintenant, utilisons-le pour convertir notre HTML.

303
00:15:03,260 --> 00:15:07,080
‫Nous utilisons donc htmlToText. fromString, puis cette

304
00:15:09,877 --> 00:15:12,340
‫chaîne est stockée en HTML.

305
00:15:13,300 --> 00:15:14,133
‫À droite?

306
00:15:15,620 --> 00:15:18,230
‫Donc, ce sont nos options de messagerie, et en

307
00:15:18,230 --> 00:15:21,160
‫fait j'ai oublié quelque chose de très, très important, ici

308
00:15:21,160 --> 00:15:24,130
‫dans cette première étape, donc dans ce fichier de rendu, car

309
00:15:24,130 --> 00:15:27,200
‫tout comme avec la réponse. render, nous pouvons également

310
00:15:27,200 --> 00:15:30,010
‫coller des données dans le fichier de rendu.

311
00:15:30,010 --> 00:15:32,160
‫Et bien sûr, cela est

312
00:15:32,160 --> 00:15:35,390
‫très important si nous voulons réellement personnaliser ou envoyer

313
00:15:35,390 --> 00:15:38,283
‫un e-mail avec le nom et également coller l'URL.

314
00:15:39,580 --> 00:15:42,590
‫Et donc faisons-le comme nous le faisions normalement dans

315
00:15:42,590 --> 00:15:44,053
‫la fonction de rendu.

316
00:15:46,290 --> 00:15:51,290
‫C'est donc prénom, envoyez-le à ceci. firstName, et l'URL

317
00:15:53,733 --> 00:15:58,733
‫est la suivante. url, et collons également le sujet et

318
00:15:58,910 --> 00:16:01,300
‫vous verrez un peu plus tard pourquoi

319
00:16:02,260 --> 00:16:04,623
‫nous avons besoin de cela.

320
00:16:06,690 --> 00:16:08,300
‫D'accord?

321
00:16:08,300 --> 00:16:11,210
‫Alors, créons enfin un transport à l'aide

322
00:16:11,210 --> 00:16:13,680
‫de notre fonction de création de

323
00:16:13,680 --> 00:16:15,940
‫transport, puis envoyons l'e-mail.

324
00:16:15,940 --> 00:16:20,867
‫Donc, assez juste, c'est ça. créerTransport.

325
00:16:23,670 --> 00:16:28,670
‫Alors, rappelez-vous qu'il ne s'agit que de cette méthode ici, celle-ci, et qu'elle

326
00:16:29,200 --> 00:16:30,960
‫porte exactement le même

327
00:16:30,960 --> 00:16:33,980
‫nom que cette fonction ici provenant de nodemailer.

328
00:16:33,980 --> 00:16:35,450
‫C'est donc

329
00:16:35,450 --> 00:16:38,583
‫un peu déroutant, alors appelons-le newTransport ici.

330
00:16:40,380 --> 00:16:43,847
‫D'accord, et donc ici c'est aussi newTransport, donc c'est

331
00:16:45,370 --> 00:16:47,520
‫un peu moins déroutant.

332
00:16:47,520 --> 00:16:48,500
‫Très bien?

333
00:16:48,500 --> 00:16:50,783
‫Maintenant, rappelons-nous comment nous l'avons fait ici auparavant.

334
00:16:51,620 --> 00:16:53,330
‫Nous avons donc eu

335
00:16:53,330 --> 00:16:55,700
‫notre transporteur, que nous avons créé

336
00:16:55,700 --> 00:17:00,360
‫séparément dans ce cas, puis nous avons enchaîné sendMail avec les options.

337
00:17:00,360 --> 00:17:04,373
‫Alors saisissons-le ici, supprimons tout le code restant.

338
00:17:07,220 --> 00:17:09,320
‫Donc, en gros, mettez-le ici comme référence.

339
00:17:10,280 --> 00:17:11,130
‫D'accord?

340
00:17:11,130 --> 00:17:13,123
‫Donc ce transporteur est maintenant ça.

341
00:17:16,470 --> 00:17:17,700
‫Très bien?

342
00:17:17,700 --> 00:17:21,170
‫Et ainsi de suite, nous enchaînons l'envoi d'e-mails, puis avec les

343
00:17:21,170 --> 00:17:23,993
‫options de messagerie que nous avons définies ici.

344
00:17:25,010 --> 00:17:27,040
‫Ensuite, il faut attendre tout

345
00:17:27,040 --> 00:17:30,220
‫ça, car, bien sûr, c'est une fonction asynchrone.

346
00:17:30,220 --> 00:17:33,043
‫Et donc marquons maintenant celui-ci ici comme asynchrone.

347
00:17:34,880 --> 00:17:35,730
‫D'accord?

348
00:17:35,730 --> 00:17:40,083
‫Et maintenant, nous devons également attendre la fonction ici.

349
00:17:41,490 --> 00:17:42,323
‫Très bien?

350
00:17:42,323 --> 00:17:46,120
‫Car ce. send est maintenant en effet une fonction asynchrone.

351
00:17:46,120 --> 00:17:49,800
‫Et donc ici on attend ça pour que cette fonction ne revienne que

352
00:17:49,800 --> 00:17:52,000
‫dès que l'email a effectivement été envoyé.

353
00:17:53,120 --> 00:17:56,533
‫Et donc, bien sûr, marquez celui-ci comme asynchrone également.

354
00:17:58,130 --> 00:17:59,380
‫Impressionnant.

355
00:17:59,380 --> 00:18:02,920
‫C'est en fait tout pour cette classe.

356
00:18:02,920 --> 00:18:05,523
‫Nous n'avons donc plus besoin de cet exemple.

357
00:18:06,450 --> 00:18:07,283
‫D'accord?

358
00:18:07,283 --> 00:18:09,740
‫Et donc dans la prochaine vidéo, nous

359
00:18:09,740 --> 00:18:13,570
‫allons ensuite utiliser cette nouvelle classe afin d'envoyer un e-mail de bienvenue.

360
00:18:13,570 --> 00:18:16,570
‫Alors, récapitulez très rapidement ce que nous avons fait ici.

361
00:18:16,570 --> 00:18:18,600
‫Nous avons donc créé une nouvelle classe de courrier

362
00:18:18,600 --> 00:18:20,730
‫électronique à partir de laquelle nous pouvons créer des objets

363
00:18:20,730 --> 00:18:23,610
‫de courrier électronique que nous pouvons ensuite utiliser pour envoyer des courriers électroniques réels.

364
00:18:23,610 --> 00:18:28,010
‫Et pour créer un nouvel objet e-mail, nous collerons l'utilisateur ainsi qu'une

365
00:18:28,010 --> 00:18:31,330
‫URL que nous souhaitons voir dans cet e-mail.

366
00:18:31,330 --> 00:18:35,160
‫Donc, ici, nous attribuons tout cela à l'objet actuel, ainsi

367
00:18:35,160 --> 00:18:37,940
‫qu'à d'autres paramètres que nous souhaitons

368
00:18:37,940 --> 00:18:41,890
‫avoir disponibles, tels que le prénom et l'e-mail de l'expéditeur.

369
00:18:41,890 --> 00:18:44,000
‫Donc, fondamentalement, extraire ces informations

370
00:18:44,000 --> 00:18:45,990
‫de la fonction d'envoi

371
00:18:45,990 --> 00:18:48,550
‫et les avoir toutes au même endroit.

372
00:18:48,550 --> 00:18:51,360
‫Ensuite, nous avons ici une nouvelle fonction de

373
00:18:51,360 --> 00:18:54,290
‫transport qui permet de créer très facilement différents

374
00:18:54,290 --> 00:18:55,940
‫transports pour différents environnements.

375
00:18:55,940 --> 00:18:58,500
‫Et donc encore une fois, en faisant abstraction

376
00:18:58,500 --> 00:19:00,770
‫de cette logique de la fonction d'envoi

377
00:19:00,770 --> 00:19:04,093
‫réelle qui ne devrait se préoccuper que de l'envoi de l'e-mail.

378
00:19:05,120 --> 00:19:05,953
‫D'accord?

379
00:19:05,953 --> 00:19:09,500
‫Alors voici cette fonction d'envoi qui prend un modèle et

380
00:19:09,500 --> 00:19:14,240
‫un sujet, et sur cette base, elle crée le code HTML à partir d'un

381
00:19:14,240 --> 00:19:17,370
‫modèle carlin qui sera ensuite défini dans les options

382
00:19:17,370 --> 00:19:19,830
‫de courrier électronique, qui, à la

383
00:19:19,830 --> 00:19:23,150
‫fin de la fonction, puis enfin être envoyé dans cette

384
00:19:23,150 --> 00:19:24,470
‫ligne de code.

385
00:19:24,470 --> 00:19:25,390
‫D'accord?

386
00:19:25,390 --> 00:19:27,880
‫Mais ce ne sera pas cette fonction d'envoi

387
00:19:27,880 --> 00:19:29,950
‫que nous utiliserons dans notre code.

388
00:19:29,950 --> 00:19:31,840
‫Au lieu de cela, nous allons créer

389
00:19:31,840 --> 00:19:34,183
‫une fonction différente pour chaque type d'e-mail que

390
00:19:34,183 --> 00:19:35,417
‫nous souhaitons envoyer.

391
00:19:35,417 --> 00:19:39,380
‫Et le premier que j'ai créé ici est le sendWelcome.

392
00:19:39,380 --> 00:19:40,213
‫Très bien?

393
00:19:40,213 --> 00:19:43,440
‫Et donc, pour sendWelcome, nous avons ensuite prédéfini

394
00:19:43,440 --> 00:19:45,420
‫le nom du modèle

395
00:19:45,420 --> 00:19:48,480
‫comme bienvenue et le sujet comme cette chaîne.

396
00:19:48,480 --> 00:19:49,313
‫D'accord?

397
00:19:49,313 --> 00:19:52,723
‫Donc, j'espère que cela avait du sens, et je vous vois dans une seconde.

