
I'm trying to forward an image in storage via email as an attachment, but either the email is not sent (Response returns The attachment content must be base64)
if I put data:$mimeType;base64,
before the $image
or it's sent, but the attachment is unviewable, either in preview mode, or after downloading it (it has the wrong size too).
Here's my code (I'm using purely REST API at this point)
Future _testEmail()async {
String path = "storage/buckets/$bucketId/files/$docId/preview";
var response = await _httpService.get(path);
if (response?.statusCode == 200 && response?.data != null) {
// grab data as Uint8List
image = const Utf8Encoder().convert(response?.data);
// encode to base64 for attaching
final img = base64Encode(image);
//get Mime Type
final type = response?.headers.value("Content-Type");
_sendEmail($firstName, $lastName, $recipient, img, type!);
} else {
debugPrint("Ooooooooppppppsssss!!!");
}
}

void _sendEmail(String firstName, String lastName, String recipient,
String image, String mimeType) async {
const path = "send";
final ext = mimeType.split("/")[1];
String fileName = (ext == 'png') ? "$name.png" : "$name.jpg";
final data = {
"personalizations": [
{
"to": [
{
"name": "Email Recipient",
"email": recipient
}
]
}
],
"from": {"email": "sender@gmail.com"},
"subject": "Test Email with Attachment",
"content": [
{
"type": "text/html",
"value":
"Sample email with attachment from $fname $lname."
}
],
"attachments": [
{
"content": "data:$mimeType;base64,$image", // generates the attachment must be base64
// "content": image, // email is sent, but wrong size & unusable
"filename": fileName,
"type": mimeType
}
]
};
final response = await _httpEmail.post(path, data); // sending email via REST API
if (response?.statusCode == 202 && response?.data != null) {
print("Email sent!");
} else {
print("Status Code: ${response?.statusCode.toString()}");
print("Response Data: ${response?.data.toString()}");
}
}
Any insight is highly appreciated.

This might be highly dependent on whatever you're using to send the email

Maybe in the data, you need a space after the comma?

For emails with attachments, I'm using Sendgrid

Will try... 😄
Recommended threads
- Still an issue? On user deletion, target...
This has been mentioned here: https://discord.com/channels/564160730845151244/1295830646039515146 and as a Github issue here: https://github.com/appwrite/appwri...
- Appwrite database is rounding int values
Hi, i just noticed that appwrite is rounding the value 608542412536545279 to 608542412536545300 in my int array. It seems to somewhat relate to this github iss...
- URGENT: Auth Data GONE and replaced by "...
This issue appeared suddenly and without warning yesterday. My auth page is replaced by the 404 error, and I don't have access to any users. When users try to l...
