2016-08-03 9 views
0

Wie sende ich eine E-Mail-Bestätigung an einen Benutzer mit einer benutzerdefinierten Nachricht und einem benutzerdefinierten Parameter anstelle des Standardparameters.Meteor-Konten E-Mail-Überprüfung

Meteor.methods({ 
    sendveryficationmail: function (theuserId, themail) { 
     this.unblock(); 
     Accounts.sendVerificationEmail(theuserId); 
    } 
}); 

Wenn ich diese Methode verwende, bekomme ich die Standard Meteor Verification E-Mail gesendet. Wie ändere ich die Parameter und wo sollte ich sie ändern?

+0

https://themeteorchef.com/snippets/sign-up-with-email-verification/#tmc-customizing-the-verification-template – Kalman

Antwort

1

Sie können Ihre eigene Funktion erstellen Sie benutzerdefinierte HTML senden Vorlagen verwenden, können Sie Ereignis einfache HTML-Pass statt Vorlagendatei. Hier ist der Code:

'sendVerificationEmail':function (emailId) { 
     Meteor.users.update({'emails.address': emailId}, {$unset: {'services.email.verificationTokens': 1}}); 
     var user = Meteor.users.findOne({"emails.address": emailId}); 
     if (user) { 
       if(user.emails.find(email=> email.address === emailId).verified){ 
        throw new Meteor.Error("Email already verified"); 
       } else { 
        var userInfo = user.profile; 
        var emailId = user.email[0].address; 
        Accounts.emailTemplates.siteName = "NJAL"; 
        Accounts.emailTemplates.from = "myTest <[email protected]>"; 
        Accounts.emailTemplates.verifyEmail.subject = function(user) { 
         return "Account Verification Required"; 
        }; 
        Accounts.emailTemplates.verifyEmail.html = function (user, url) { 
         SSR.compileTemplate('registartionEmail', Assets.getText('email_templates/registration_confirm.html')); 
         var res=url.split("/"); 
         var emailData = { 
          "designer_name": userInfo.fname + " "+ userInfo.lname, 
          "url": "http://domain.com/pages/verify/?token="+res[res.length-2]+"/"+res[res.length-1], 
          "emailId": emailId, 
         }; 
         return SSR.render('registartionEmail', emailData); 
        }; 
        Accounts.sendVerificationEmail(user._id, emailId); 
       } 
     } else {   
      throw new Meteor.Error("Email does not exist"); 
     } 
    }, 
0

Sie können es tun:

Meteor.startup(function() { 
    Accounts.verifyEmail = { 
     from: 'custom from', 
     subject: 'your subject', 
     text: 'Your text', 
     html: 'Your html' 
    } 
}