2016-07-28 11 views
1

ユーザー招待状や通知用のSendgridトランザクションメールテンプレートを組み込んだMeteorアプリケーションでは、代替タグを置き換えることができません。テンプレート付きメールは受信されますが、違いはありません。Meteorアプリでメール送信時にSengridテンプレート置換タグが置き換えられない

Email.send({ 
    from: "[email protected]", 
    to:email, 
    subject: "Subject", 
    sub: { 
     "{name}":post.createdBy, 
     "{title}":post.title, 
    }, 
    headers: { 
     "X-SMTPAPI": { 
     "filters": { 
      "templates": { 
      "settings": { 
       "enable": 1, 
       "template_id": "xxxx" 
      } 
      } 
     } 
     }, 
     "Content-Type" : "text/html" 
    } 
}); 

私が直接APIを使用してではなく、流星メールパッケージが、その可能性の問題が表示されないていないよ:

Meteor.startup(function() { 
    process.env.MAIL_URL = 'smtp://username:[email protected]:587'; 
}); 

これは私の短縮電子メールテンプレート:

Hey {name}, 

    your post {title} has a new comment. 

答えて

0

smtpapi-nodejs NPMパッケージを使用していました。

簡単な例は次のようになります。残念ながら

var nodemailer = require('nodemailer'); 
var smtpapi = require('smtpapi'); 

var header = new smtpapi(); 

header.setFilters({ 
    "templates": { 
     "settings": { 
     "enable": 1, 
     "template_id": xxx-template-id-xxx 
     } 
    } 
}); 

header.addSubstitution('-name-', post.createdBy); 
header.addSubstitution(-title-', post.title); 

var headers = { 'x-smtpapi': header.jsonString() }; 

// Use nodemailer to send the email 
var settings = { 
    host: "smtp.sendgrid.net", 
    port: parseInt(587, 10), 
    requiresAuth: true, 
    auth: { 
    user: "sendgrid_username", 
    pass: "sendgrid_password" 
    } 
}; 
var smtpTransport = nodemailer.createTransport(settings); 

var mailOptions = { 
    from:  "Fred Foo <[email protected]>", 
    to:  "[email protected]", 
    subject: "Hello", 
    text:  "Hello world", 
    html:  "<b>Hello world</b>", 
    headers: headers 
} 

smtpTransport.sendMail(mailOptions, function(error, response) { 
    smtpTransport.close(); 

    if (error) { 
    console.log(error); 
    } else { 
    console.log("Message sent: " + response.message); 
    } 
}); 
1

ヘッダーにもsubを入れる必要があります。 X-SMTPAPIヘッダー自体も有効なJSONを文字列に含める必要があります。

このお試しください:私がやってしまった何を

var xsmtpapi = { 
    "filters": { 
    "templates": { 
     "settings": { 
     "enable": 1, 
     "template_id": "xxxx" 
     } 
    } 
    }, 
    "sub": { 
    "{name}": post.createdBy, 
    "{title}": post.title 
    } 
} 

Email.send({ 
    from: "[email protected]", 
    to:email, 
    subject: "Subject", 
    sub: { 
     "{name}":post.createdBy, 
     "{title}":post.title, 
    }, 
    headers: { 
     "X-SMTPAPI": JSON.stringify(xsmtpapi), 
     "Content-Type" : "text/html" 
    } 
}); 
+0

、動作しませんでしたという。私は唯一の使用しています - http://docs.meteor.com/api/email.html – mhlavacka

+0

しかし、X - SMTPAPI電子メールでサブを置くことは決して処理されませんでした。 – mhlavacka

+0

入手しました。 JSONオブジェクト全体を文字列として渡す必要があります。 – bwest

関連する問題