Unsere E-Mails werden einwandfrei gesendet und wir möchten jetzt einen Anhang hinzufügen. Also haben wir dieses Beispiel kopiert: https://github.com/sendgrid/sendgrid-nodejs/blob/93763a74a85969382d59fcb3708d22051498f998/examples/helpers/mail/example.js
Und Code wie folgt gemacht:
const sendgrid: any = require('sendgrid')(process.env.sendgrid_key);
sendEmail(data: IEmailData): void {
const email: any = new sendgrid.Email();
email.addTo(data.emailTo);
for (let attachment in data.attachments)
this.addAttachment(email, attachment);
sendgrid.send(email, (error: any, json: string) => {
if (error)
console.log(error);
});
}
addAttachment(email: any, attachmentData: any): void {
const attachment = new sendgrid.Attachment();
attachment.setContent(attachmentData.content);
attachment.setType(attachmentData.type);
attachment.setFilename(attachmentData.filename);
attachment.setDisposition(attachmentData.disposition);
email.addAttachment(attachment);
}
Aber wenn wir sendEmail
aufrufen, wird uns sendgrid.Attachment is not a function
(erste Zeile der zweiten Funktion) mitgeteilt.
Ich habe das sendgrid-Objekt ausgedruckt und es sieht folgendermaßen aus:
{ api_key: 'SG.DaV0L',
api_user: null,
options:
{ uriParts:
{ protocol: 'https',
host: 'api.sendgrid.com',
port: '',
endpoint: '/api/mail.send.json' },
uri: 'https://api.sendgrid.com/api/mail.send.json' },
version: '1.9.2',
Email: [Function: Email],
smtpapi: [Function: smtpapi],
send: [Function] }
Dankeschön,
Richard.
Herausgefunden nach dem Lesen des Codes. Dieses Beispiel in Github ist völlig falsch. Sollte so sein:
addAttachment(email: any, attachmentData: any): void {
email.addFile(attachmentData);
}
Danke @RichardJECooke ,
Wir werden weiter untersuchen und das Beispiel korrigieren. Vielen Dank, dass Sie sich die Zeit genommen haben, die Lösung zu teilen!
Wenn Sie uns eine E-Mail an [email protected] mit Ihrer Postanschrift und T-Shirt-Größe senden, senden wir Ihnen gerne einen Swag.
Vielen Dank!
Wir haben jetzt hier ein Anhangsbeispiel: https://github.com/sendgrid/sendgrid-nodejs/blob/master/USE_CASES.md#attachments
Der Beispiellink funktioniert nicht.
Dies ist der neue Link:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/attachments.md
Hallo, ich weiß, dass dieses Problem geschlossen wurde, aber dies ist eher ein Problem, das ich hatte, als ich versuchte, eingebettete Bilder an einen Google Mail-Benutzer zu senden.
Ich habe einige Gründe gefunden, warum Google Mail aufgrund der zusätzlichen Sicherheit, die sie auferlegen, keine Bilder rendert. Daher dachte ich, ich würde den Parameter attachments verwenden, um eine content_id hinzuzufügen und zu prüfen, ob dies funktioniert, anstatt ein reguläres src-Tag zu verwenden.
Wenn es gesendet wird, gibt send grid eine fehlerhafte Anfrage zurück. Hier ist meine Methode.
Ich codiere das JPG wie folgt:
let bitmap = fs.readFileSync(imageDir);
imageBase64URL = new Buffer(bitmap).toString('base64');
Dann übergebe ich das codierte JPG in das Inhaltsfeld innerhalb des Anhangsarguments:
mailer.send({
to: '[email protected]',
from: '[email protected]',
subject: `You have been removed from ${house.name} by ${removerName}`,
html: result,
attachments: [
{
content: imageBase64URL,
filename: 'cluttr-logo.jpg',
contentId: 'cluttr-logo'
},
]
});
Schließlich binde ich meine CID wie folgt in meine ejs-Datei ein:
html
<img alt="Logo" src="cid:cluttr-logo" width="60"
height="60"
Hoffentlich hat jemand einen Einblick in das, was ich falsch mache. Vielen Dank.
Hallo @ lvh1g15 ,
Ich glaube , Sie brauchen eine hinzuzufügen disposition: inline
, wie so .
Mit besten Empfehlungen,
Elmer
@thinkingserious : Hallo, wissen Sie, wie man einen Anhang mit der Transaktionsvorlage sendet?
@thinkingserious Gibt es eine Möglichkeit, meiner E-Mail einen URL-Anhang hinzuzufügen ? Ich konnte kein Dokument finden, in dem angegeben ist, wie Anhänge in Sendgrid funktionieren.
Grüße,
Mohit
@thinkingserious : Hallo, wissen Sie, wie man einen Anhang mit der Transaktionsvorlage sendet?
Wenn Sie die v3-API verwenden, haben Sie einfach einen attachments
-Schlüssel hinzugefügt. content
muss Base64-codiert sein
https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html
email = {
"from":{
"email":"[email protected]"
},
"personalizations":[
{
"to":[
{
"email" : "[email protected]"
}
],
"dynamic_template_data": {
}
}
],
"attachments": [
{
"content": "",
"filename" ""
}
]
"template_id":"someid"
}
Der Beispiellink funktioniert nicht.
Dies ist der neue Link:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/attachments.md
Der neue neue Link: https://github.com/sendgrid/sendgrid-nodejs/blob/master/docs/use-cases/attachments.md
Hilfreichster Kommentar
Der Beispiellink funktioniert nicht.
Dies ist der neue Link:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/attachments.md