2017-01-22 8 views
0

私はherokuウェブサイトでsendgridを使用して電子メールの連絡先ページを設定しようとしています。私は、ヘルパーメーラとそのコードなしでコードを試しました。しかし、どちらも自分のメールアドレスにメールを送信できません。私はherokuアプリの設定でsendgrid APIキーを変数として追加し、ユーザー名とパスワードもインポートしました。 ユーザーがボタンをクリックすると、電子メールプロセスが開始されます。私はフォーム要素内のポストルートへのアクションを持っており、ボディパーザを使ってユーザーからの入力値(メッセージ、電子メールアドレス、メッセージ)を取得します。私のポストルートの中で、sendgridからコードをラップするemail.jsファイルの関数を呼び出します。Sendgridノードjsは電子メールを送信しません。プログラムにエラーメッセージがありません

//ハンドルバーを使用したMy html。

<div class = "mainDiv" id = "sectionAbout"> 
      <h1 class="mainDivH1" id = "AboutMe">{{ ContactLi }}</h1> 
       <form action="/email" method="POST"> 
        <label for="fullName">{{ formName }}</label> <br><br> 
        <input type="text" name="fullName"> 
        <br> 
        <br> 
        <label for="subject">{{ formSubject }}</label> <br><br> 
        <input type="text" name="subject"> 
        <br> 
        <br> 
        <label for="email">{{ formEmail }}</label> <br><br> 
        <input type="text" name="email"> 
        <br> 
        <br> 
        <label for="message">{{ formMessage }}</label> <br><br> 
        <textarea rows="15" cols="80" type="text" name="message id="textbox"></textarea> 
        <br> 
        <br> 
        <button id="but" type="submit">Submit</button> 
       </form> 
     </div> 

//あなたがたenv VARとしてあなたSendgrid APIキーを追加したことを述べ、及び輸入

var email = require('../mail/email'); 

router.post('/email', function(req, res){ 
    var name = req.body.fullName; 
    var emSubject = req.body.subject; 
    var senderMail = req.body.email; 
    var message = name + " " + req.body.message; 

    var myEmail = '[email protected]'; 

    email.send(emSubject, senderMail, message, function(){ 
     res.redirect('/contact'); 
    }); 
}); 

//email.js

var helper = require('sendgrid').mail 
var sg = require('sendgrid')(process.env.SENDGRID_API_KEY); 

var email = { 

    send: function(emSubject, senderMail, message, callback){ 

      var from_email = new helper.Email(senderMail); 
      var to_email = new helper.Email('[email protected]'); 
      var subject = emSubject; 
      var content = new helper.Content("text/plain", message); 
      var mail = new helper.Mail(from_email, subject, to_email, content); 

      var request = sg.emptyRequest({ 
       method: 'POST', 
       path: '/v3/mail/send', 
       body: mail.toJSON() 
      }); 
      console.dir("request"); 
      console.dir(JSON.stringify(request, null, 4)); 

      sg.API(request, function(error, response) { 
       if(error){ 
       console.log(error); 
       }  
       console.log(response.statusCode) 
       console.log(response.body) 
       console.log(response.headers) 
       callback(error); 
      }); 

    } 
} 

module.exports = email; 
+0

エラーは記録されていませんか? sendgridダッシュボードに表示をしますか? –

答えて

2

POSTルートのコードあなたのユーザー名とパスワード。あなたはそれをする必要はありません。あなたのHerokuアカウントにSendgridアドオンを追加するだけです:

heroku addons:create sendgrid:starter 
関連する問題