2016-10-05 6 views
0

私はsendgrid(ヘルパー付き)を使用してnodeJsサーバーから電子メールを送信しています。 添付ファイルとしてPDFファイルを送信すると、応答は200 OKでPDF添付のメールを受信して​​います。しかし、次のエラーを表示しようとすると、そのファイルは開かれていませんでした。sendgridヘルパーが正しく動作していないノードjsにPDFを添付してください。

"このドキュメントのプレビューに問題がありました。"

"pdfkit"モジュールを使用してpdfファイルを作成しています。

ここに私のコードです。

var doc = new PDFDocument({ 
    size: 'letter' 
}); 
doc.pipe(fs.createWriteStream('will.pdf')); 
doc.text('my text11111') 
doc.end(); 
// 
fs.readFile('will.pdf', function (err, data) { 
    mailer.sendMail([{ name: '', email: '[email protected]' }], 'PDF TEST', "PDF TEST BODY", { 'base64Content': data.toString('base64'), 'fileName': 'test', 'fileType': 'pdf' }); 
}); 

添付ファイルは、次のように生成されます。

function sendMail(toList, subject, message, attachmentObj) { 
    if (attachmentObj) { 
     var attachment = new helper.Attachment() 
     attachment.setContent(attachmentObj.base64Content) 
     attachment.setType("application/" + attachmentObj.fileType) 
     attachment.setFilename(attachmentObj.fileName + "." + attachmentObj.fileType) 
     attachment.setDisposition("attachment") 
     mail.addAttachment(attachment) 
    } 
} 

答えて

1

私は実際に私はその後、私がしようとしたファイルの相対パスを与えられた、メールで送信された文書をプレビューするのと同じ問題に直面していた...これで

を同じ問題に直面しました絶対パス(フルパス)を与えるとそれは働いた。

絶対パスを入力してください。

OR

添付ファイルのパラメータ配列を受け入れるので、下記のようにパラメータとして配列を渡してみてください。

attachments: [{ // file on disk as an attachment 
      filename: 'text3.txt', 
      path: '/path/to/file.txt' // stream this file 
     }] 
+0

どうもありがとうSurjeet。今はうまくいきます。 – user3483782

+1

喜んで、何が問題だったのですか。パスまたは添付ファイルのパラメータです。 –

+0

私は絶対パスで試しました。それが一度だけ働いた。私は理由が分からない。 – user3483782

関連する問題