2016-05-06 11 views
0

Ich bin neu bei Meteor js. Könnten Sie mir bitte vorschlagen, wie Sie eine E-Mail-Vorlage hinzufügen, die HTML-Code in Meteor-Projekt einbetten. Ich hatte einige Pakete ausprobiert, aber es funktioniert nicht. Könnten Sie bitte mit einem Beispielbeispiel erklären.Wie E-Mail-Vorlage mit Embed HTML-Code in Meteor Projekt hinzufügen

Hinweis: Wenn ein Benutzer sich auf meiner Website anmeldet. Wir beide (neuer Benutzer und ich) müssen die E-Mail erhalten. Beide enthalten unterschiedliche eingebettete HTML-Inhalte.

Antwort

0

Ich habe diese Anforderung gestern glücklicherweise umgesetzt. So unten ist die Richtung, HTML mit E-Mail-Paket zu senden.

Befehl ausführen;

meteor add email

meteor add meteorhacks:ssr

eine HTML erstellen, die von SERVER zugänglich sein wird.

unten ist der Beispielcode für HTML bei PROJECT/email.html E-Mail-Paket

<template name="email"> 
    <table> 
    <tr> 
     <td></td> 
     <td width="600"> 
    <table> 
     <tr> 
     <th>Name</th> 
     <td>{{name}}</td> 
     </tr> 
     <tr> 
     <th>Age</th> 
     <td>{{age}}</td> 
     </tr> 
    </table> 
     </td> 
    </tr> 
    </table> 
</template> 

In SERVER/main.js Datei, die Sie das Paket mit,

importieren müssen hinzufügen
import { Email } from 'meteor/email'; 

Meteor.startup(() => { 

    //fill EMAIL_ID, PASSWORD 
    process.env.MAIL_URL = "smtp://EMAIL_ID:[email protected]:465"; 

    SSR.compileTemplate('htmlEmail', Assets.getText('email.html')); 

    var emailData = { 
     name: "Jishnu S", 
     age: "25"  
    }; 

    Email.send({ 
     to: "[email protected]", 
     from: "email_ID", 
     subject: "Example Email", 
     html: SSR.render('htmlEmail', emailData) 
    }); 
}); 

obigen Code ist für Gmail SMTP-Konfiguration aktiviert E-Mails. check email und Voila .. !!!! Es klappt. Genießen! Glückliche Kodierung!

+0

Hallo! Ich habe Ihren Code getestet, aber ich habe "Fehler: Kann Modul './email.html' auf meiner Konsole nicht finden :(Der relative Pfad ist korrekt –

+0

Was ist Ihre Verzeichnisstruktur? –

1

Hier ist ein einfaches Beispiel vorausgesetzt, Sie Flamme verwenden:

in Ihrer Vorlage Ereignisse:

var email = emailAddress; //define emailAddress 
var dataContext = { 
    yourname: getDataFromSomewhere; //whatever you define in dataContext is used in email template 
}; 
var html = Blaze.toHTMLWithData(Template.mailTemplateName, dataContext); 
Meteor.call('sendMail', yourname, email, html); 

Mail-Schablone: ​​

<template name="mailTemplateName"> 
    <h3>Hello {{yourname}}</h3> 
</template> 

Innerhalb Ihre Methoden:

sendMail: function(yourname, email, html) { 
    this.unblock(); 
    var options = { 
     from:"[email protected]", 
     to: email, 
     subject: 'Mail subject field', 
     html: html 
    }; 
    Email.send(options) 
} 

Du nur ne Ed-E-Mail-Paket (meteor add email in der Konsole oder fügen Sie Ihren Paketen email hinzu) und konfigurieren Sie SMTP, damit das funktioniert. Dokumentation für E-Mail-Paket und Nutzung here

SMTP-Konfigurationsbeispiel (in Server!)

Meteor.startup(function() { 
    smtp = { 
    username: '[email protected]', 
    password: 'password here', 
    server: 'server.something.com', 
    port: 25 //change with correct port 
} 

process.env.MAIL_URL = 'smtp://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.server) //+ ':' + smtp.port; 
}); 

Wenn Sie bekommen, was in diesem Code geht, können Sie ganz einfach mit ihm spielen und verschiedenen E-Mail mit unterschiedlichen Daten senden mit verschiedene HTML-Vorlagen