Email kami terkirim dengan baik dan sekarang kami ingin menambahkan lampiran. Jadi kami menyalin contoh ini: https://github.com/sendgrid/sendgrid-nodejs/blob/93763a74a85969382d59fcb3708d22051498f998/examples/helpers/mail/example.js
Dan membuat kode seperti ini:
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);
}
Tetapi ketika memanggil sendEmail
kita diberitahu sendgrid.Attachment is not a function
(baris pertama dari fungsi kedua).
Saya mencetak objek sendgrid dan terlihat seperti ini:
{ 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] }
Terima kasih,
Richard.
Mengetahui setelah membaca kode. Contoh di github itu benar-benar salah. Seharusnya seperti ini:
addAttachment(email: any, attachmentData: any): void {
email.addFile(attachmentData);
}
Terima kasih @RichardJECooke ,
Kami akan menyelidiki lebih lanjut dan memperbaiki contoh. Terima kasih telah meluangkan waktu untuk membagikan solusinya!
Jika Anda mengirim email kepada kami di [email protected] dengan alamat surat dan ukuran T-shirt Anda, kami akan dengan senang hati mengirimi Anda barang curian.
Terima kasih!
Kami sekarang memiliki contoh lampiran di sini: https://github.com/sendgrid/sendgrid-nodejs/blob/master/USE_CASES.md#attachments
Tautan contoh tidak berfungsi.
Ini tautan baru:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/attachments.md
Hai, Saya tahu masalah ini telah ditutup tetapi ini lebih merupakan masalah yang saya alami saat mencoba mengirim gambar yang disematkan ke pengguna gmail.
Saya menemukan beberapa alasan mengapa gmail tidak merender gambar karena beberapa keamanan tambahan yang mereka terapkan jadi saya pikir saya akan menggunakan parameter lampiran untuk menambahkan content_id dan melihat apakah itu berfungsi daripada menggunakan tag src biasa.
Ketika dikirim, jaringan kirim mengembalikan permintaan yang buruk. Inilah metode saya.
Saya menyandikan JPG seperti ini:
let bitmap = fs.readFileSync(imageDir);
imageBase64URL = new Buffer(bitmap).toString('base64');
Kemudian saya memasukkan JPG yang dikodekan ke dalam bidang konten di dalam argumen lampiran:
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'
},
]
});
Akhirnya saya menyematkan CID saya seperti itu ke file ejs saya:
html
<img alt="Logo" src="cid:cluttr-logo" width="60"
height="60"
Mudah-mudahan seseorang memiliki wawasan tentang apa yang saya lakukan salah. Terima kasih.
Halo @ lvh1g15 ,
Saya pikir Anda perlu menambahkan disposition: inline
, seperti itu .
Salam hangat,
Elmer
@thinkingserious : Hai, apakah Anda tahu cara mengirim lampiran dengan template transaksional?
@thinkingserious adakah cara untuk menambahkan lampiran URL ke email saya, apa cara lain untuk menambahkan lampiran ke email saya. tidak bisa menemukan dokumen yang menyatakan cara kerja lampiran di Sendgrid.
Salam,
Mohit
@thinkingserious : Hai, apakah Anda tahu cara mengirim lampiran dengan template transaksional?
jika Anda menggunakan API v3, tambahkan saja kunci attachments
. content
harus dikodekan Base64
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"
}
Tautan contoh tidak berfungsi.
Ini tautan baru:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/attachments.md
Tautan baru baru: https://github.com/sendgrid/sendgrid-nodejs/blob/master/docs/use-cases/attachments.md
Komentar yang paling membantu
Tautan contoh tidak berfungsi.
Ini tautan baru:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/attachments.md