2016-10-05 3 views
0

Ich benutze Sendgrid (mit Helfer), um E-Mails von NodeJs Server zu senden. Wenn ich eine PDF-Datei als Anlage sende, ist die Antwort 200 OK und ich empfange die Mail mit angehängtem PDF. Aber diese Datei wurde nicht geöffnet, wenn ich versuche, den folgenden Fehler zu öffnen.anhängen PDF in Knoten js mit sendgrid Helfer funktioniert nicht richtig

"Es gab ein Problem bei der Vorschau dieses Dokuments."

Ich verwende "pdfkit" Modul, um eine PDF-Datei zu erstellen.

Hier ist mein Code.

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' }); 
}); 

In der Funktion "Mail senden" wird der Anhang wie folgt generiert.

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) 
    } 
} 

Antwort

1

stand ich das gleiche Problem mit diesem ...

Eigentlich war ich der relativen Pfad angegeben der Datei und wurde dann in Mail geschickt, um die gleiche Frage, die sich das Dokument von einer Vorschau Ich habe versucht, mit gab das absolute (vollständige Pfad) und es funktionierte.

So können Sie absoluten Pfad geben und dann sehen.

ODER

Attachments Parameter akzeptieren ein Array so vorbei Array als Parameter versuchen, wie unten angegeben:

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

Dank viel Surjeet. Es funktioniert jetzt gut. – user3483782

+1

Vergnügen, also was war das Problem. ist es der Pfad oder Anhang Parameter. –

+0

Ich habe es mit dem absoluten Pfad versucht. Nur wenn es funktioniert hat. Ich weiß nicht, was der Grund ist. – user3483782