@@ -83,15 +83,16 @@ class ApiMailAdapter extends MailAdapter {
8383
8484 /**
8585 * @function sendMail
86- * @desciption Sends an email.
86+ * @description Sends an email.
8787 * @param {String } [sender] The email from address.
88- * @param {String } recipient The email recipient.
88+ * @param {String } recipient The email recipient; if set overrides the email address of the `user` .
8989 * @param {String } [subject] The email subject.
9090 * @param {String } [text] The plain-text email content.
9191 * @param {String } [html] The HTML email content.
9292 * @param {String } [templateName] The template name.
93- * @param {String } [placeholders] The template placeholders.
94- * @param {String } [extra] Any additional variables to pass to the mail provider API.
93+ * @param {Object } [placeholders] The template placeholders.
94+ * @param {Object } [extra] Any additional variables to pass to the mail provider API.
95+ * @param {Parse.User } [user] The Parse User that the is the recipient of the email.
9596 * @returns {Promise<Any> } The mail provider API response.
9697 */
9798 async sendMail ( { sender, recipient, subject, text, html, templateName, placeholders, extra, user } ) {
@@ -119,9 +120,9 @@ class ApiMailAdapter extends MailAdapter {
119120
120121 // Define parameters
121122 let message ;
122- const templateName = email . templateName ;
123- // Get user from email object
124123 const user = email . user ;
124+ const userEmail = user ? user . get ( 'email' ) : undefined ;
125+ const templateName = email . templateName ;
125126
126127 // If template name is not set
127128 if ( ! templateName ) {
@@ -147,7 +148,7 @@ class ApiMailAdapter extends MailAdapter {
147148 if ( email . direct ) {
148149
149150 // If recipient is not set
150- if ( ! email . recipient ) {
151+ if ( ! email . recipient && ! userEmail ) {
151152 throw Errors . Error . noRecipient ;
152153 }
153154
@@ -158,7 +159,7 @@ class ApiMailAdapter extends MailAdapter {
158159 message = Object . assign (
159160 {
160161 from : email . sender || this . sender ,
161- to : email . recipient ,
162+ to : email . recipient || userEmail ,
162163 subject : email . subject ,
163164 text : email . text ,
164165 html : email . html
@@ -174,14 +175,14 @@ class ApiMailAdapter extends MailAdapter {
174175 Object . assign ( placeholders , {
175176 link,
176177 appName,
177- email : user . get ( 'email' ) ,
178+ email : userEmail ,
178179 username : user . get ( 'username' )
179180 } ) ;
180181
181182 // Set message properties
182183 message = {
183184 from : this . sender ,
184- to : user . get ( 'email' )
185+ to : userEmail
185186 } ;
186187 }
187188
0 commit comments