yeterli temsilcisi yorum yapmak.
Sendgrids NPM paketini kullanarak ek sorununu çözdüm.
npm install sendgrid
Eğer meteor uygulamasında npm yoksa, bunu okuyabilirsiniz. senin packages.json sunucuda çalışan bir dosyada Sonra
{
"sendgrid": "1.4.0"
}
yılında https://meteorhacks.com/complete-npm-integration-for-meteor
: Burada
Meteor.startup(function(){
process.env.MAIL_URL = 'smtp://<username>:<password>@smtp.sendgrid.net:587';
});
Bir ekin url alır örnek bir meteor yöntemi (biziz Bir eklenti koleksiyonundan S3 kullanıyorsunuz. Bu özel yöntem, herhangi bir sayıda alıcıya herhangi bir sayıda eki gönderebilir. Burada belirli bir bağlamsal mantık var, ancak sizi eklemeye ve gönderen ekleri çalıştırmaya yetecek kadar olmalı.
önemli kısmı:
var email = new sendgrid.Email();
email.setFrom("[email protected]");
email.setSubject("subject");
email.addFile({
filename: attachment_name,
url: attachment_url
});
sendgrid.send(email, function (err, json) {
if (err) {
console.error(err);
}
if (json) {
console.log(json.message);
}
});
Tam bir yöntem örneği: nodemailer kodu ne
Meteor.methods({
SendEmail: function (subject, message, templateNumber) {
//console.log(subject, message, templateNumber);
var user_id = Meteor.userId();
var list = UserList.find({user_id: user_id}).fetch();
var sentTemplate = sentTemplate + templateNumber;
var counter = 0;
console.log(list.length);
// Track is the 'No Response' from the list.
for (var i = 0; i < list.length; i++) {
var email = new sendgrid.Email();
if (list[i].track == null || list[i].track == "1") {
//email.addTo(list[0].list[i].Email);
//console.log(list[0].list[i].Email);
email.to = list[i].email;
}
email.setFrom(Meteor.user().email);
email.replyto = Meteor.user().email;
email.setSubject(subject);
var firstName = list[i].name.split(" ")[0];
var companyReplace = message.replace("{{Company}}", list[i].company).replace("{{Company}}", list[i].company).replace("{{Company}}", list[i].company).replace("{{Company}}", list[i].company).replace("{{Company}}", list[i].company);
var nameReplace = companyReplace.replace("{{Name}}",list[i].name).replace("{{Name}}",list[i].name).replace("{{Name}}",list[i].name).replace("{{Name}}",list[i].name).replace("{{Name}}",list[i].name)
var firstNameReplace = companyReplace.replace("{{FirstName}}",firstName).replace("{{FirstName}}",firstName).replace("{{FirstName}}",firstName).replace("{{FirstName}}",firstName).replace("{{FirstName}}",firstName);
email.setHtml(firstNameReplace);
var numAttachments = Attachments.find({user_id: Meteor.userId()}).fetch().length;
var attachments = Attachments.find({user_id: Meteor.userId()}).fetch();
console.log("**********Attachments****************");
console.log(attachments);
console.log("**********Attachments****************");
for (var t = 0; t < numAttachments; t++) {
email.addFile({
filename: attachments[t].attachment_name,
url: attachments[t].attachment_url
});
}
sendgrid.send(email, function (err, json) {
if (err) {
console.error(err);
}
if (json) {
console.log(json.message);
}
});
//console.log(email);
} // end for loop
if (templateNumber == 1) {
Meteor.users.update({_id:Meteor.userId()}, {$set: {"sentTemplate1": true}});
}
if (templateNumber == 2) {
Meteor.users.update({_id:Meteor.userId()}, {$set: {"sentTemplate2": true}});
}
if (templateNumber == 3) {
Meteor.users.update({_id:Meteor.userId()}, {$set: {"sentTemplate3": true}});
}
if (templateNumber == 4) {
Meteor.users.update({_id:Meteor.userId()}, {$set: {"sentTemplate4": true}});
}
// for each email. replace all html
return list.length;
}
});
denedi? Eklerin meteor resmi paketinde desteklendiğine inanmıyorum. – rivarolle
[bu paket] 'i kullandım (https://atmospherejs.com/mrt/meteor-nodemailer) ve onu çalıştırmaya yönelik talimatları takip ettim (Meteor'ın e-postasına oldukça benzer bir kurulum var). Sorumu koduyla güncelleyeceğim. –
Bu makalede bazı örnekler vardır: http://kukuruku.co/hub/javascript/meteor-how-to-build-a-todo-list –