I'm using a simple contact <form>
to send emails to a given address, it works fine, now i need to add file attachments, i have an input
of type="file"
, and it can take in multiple files
How do i go from that to a string
/buffer
format like it says in the docs ?
https://resend.com/docs/api-reference/emails/send-email
Example :
await resend.emails.send({
from: 'Acme <[email protected]>',
to: ['[email protected]'],
subject: 'hello world',
text: 'it works!',
attachments: [
{
filename: 'invoice.pdf',
content: invoiceBuffer,
},
]
});
The format i use, either a string or a buffer, must be includable in the POST request's body, since what i do now is a JSON.stringify(data)
of my <form>
data and send it to the backend so it does the email sending.
I tried finding a solution with chat GPT, it suggests using FormData
, which is fine, but it never gets the format right, either it's broken when sent ( an empty array, instead of a file as string ), or it goes through but then i get the content must be in string or buffer format" error.
I'm really stuck, any help is appreciated .
Found answer here : https://github.com/resend/resend-examples/blob/main/with-attachments-content/src/pages/index.tsx
the trick is to use this to read the file as a string :
And then make the handler for your
<input type="file" onChange={onAddFileAction}/>
And then use fetch to call the API :