Mengirim email transaksi sederhana seperti konfirmasi pendaftaran atau OTP biasanya hanya membutuhkan pesan berbasis teks atau HTML. Namun, dalam banyak skenario aplikasi bisnis — seperti pengiriman invoice PDF, kwitansi pembayaran, tiket event, atau laporan bulanan — kamu perlu menyertakan file lampiran (attachment) secara otomatis melalui sistem backend.
Dengan Mailketing API v2, mengirim email dengan attachment dapat dilakukan dengan sangat cepat dan fleksibel menggunakan request HTTP POST sederhana.
Spesifikasi Fitur Attachment di Mailketing API v2
Mailketing API mendukung lampiran file langsung dalam payload pengiriman email (multipart/form-data atau JSON URL base64). Berikut adalah ketentuan utamanya:
- Format File yang Didukung: PDF, PNG, JPG/JPEG, DOCX, XLSX, ZIP, dan CSV.
- Jumlah Lampiran: Hingga 3 file lampiran sekaligus per request (parameter
attach1,attach2, danattach3). - Batas Ukuran File: Direkomendasikan maksimal 5MB per file agar pengiriman tetap instan dan tidak membebani kuota jaringan.
- Kecepatan Pengiriman: Email dengan lampiran diproses secara asynchronous di server Mailketing dan sampai ke penerima dalam hitungan detik.
Langkah-Langkah Kirim Email dengan Attachment via API
1. Dapatkan API Key dan Siapkan Sender Domain
Sebelum mengirim email, pastikan kamu sudah mendaftar di Mailketing dan menyalin API Key dari dashboard pengembang. Pastikan domain pengirim (sender domain) kamu sudah terverifikasi SPF dan DKIM agar email tidak masuk spam.
2. Endpoint dan Parameter Request
Gunakan endpoint resmi Mailketing API v2:
POST https://api.mailketing.co.id/api/v2/sendParameter utama yang digunakan:
api_key/ Header Bearer token: Kunci otentikasi akunmu.from_name: Nama pengirim yang tampil di inbox.from_email: Alamat email pengirim (wajib terverifikasi).recipient: Alamat email tujuan.subject: Subjek email.content: Isi pesan email (format HTML).attach1,attach2,attach3: File binary lampiran atau URL publik yang dapat diakses.
Contoh Kode Pengiriman (Multi-Bahasa Pemrograman)
1. cURL (Command Line)
curl -X POST https://api.mailketing.co.id/api/v2/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "from_name=Invoice System" \
-F "[email protected]" \
-F "[email protected]" \
-F "subject=Invoice Pembayaran #10492" \
-F "content=<p>Halo, terlampir invoice pembayaran Anda.</p>" \
-F "attach1=@/path/to/invoice-10492.pdf"2. PHP (cURL Form Data)
<?php
$apiKey = 'YOUR_API_KEY';
$url = 'https://api.mailketing.co.id/api/v2/send';
$postData = [
'api_key' => $apiKey,
'from_name' => 'Billing Store',
'from_email' => '[email protected]',
'recipient' => '[email protected]',
'subject' => 'Kwitansi Pembayaran Anda',
'content' => '<p>Terima kasih atas pembayaran Anda. Silakan unduh kwitansi terlampir.</p>',
'attach1' => new CURLFile('/var/www/invoices/kwitansi.pdf', 'application/pdf', 'kwitansi.pdf')
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>3. Node.js (Form-Data + Axios)
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
async function sendEmailWithAttachment() {
const form = new FormData();
form.append('api_key', 'YOUR_API_KEY');
form.append('from_name', 'Sistem Notifikasi');
form.append('from_email', '[email protected]');
form.append('recipient', '[email protected]');
form.append('subject', 'Tiket Masuk Event');
form.append('content', '<p>Berikut adalah E-Ticket Anda.</p>');
form.append('attach1', fs.createReadStream('./e-ticket.pdf'));
try {
const response = await axios.post('https://api.mailketing.co.id/api/v2/send', form, {
headers: form.getHeaders()
});
console.log('Response:', response.data);
} catch (error) {
console.error('Error sending email:', error.response ? error.response.data : error.message);
}
}
sendEmailWithAttachment();4. Python (Requests)
import requests
url = "https://api.mailketing.co.id/api/v2/send"
payload = {
"api_key": "YOUR_API_KEY",
"from_name": "Laporan Bulanan",
"from_email": "[email protected]",
"recipient": "[email protected]",
"subject": "Laporan Penjualan Bulan Ini",
"content": "<p>Berikut terlampir laporan statistik penjualan.</p>"
}
files = [
('attach1', ('laporan.pdf', open('laporan.pdf', 'rb'), 'application/pdf'))
]
response = requests.post(url, data=payload, files=files)
print(response.json())Tips Mengirim Email Attachment Agar Bebas Spam
- Hindari Format File Berbahaya: Jangan pernah melampirkan file dengan ekstensi
.exe,.bat,.vbs, atau.jskarena pasti diblokir oleh server email penerima (Gmail, Outlook). - Kompresi Ukuran File: Semakin kecil ukuran file PDF atau gambar yang kamu kirim, semakin cepat pengiriman dan semakin tinggi skor reputasi deliverability domainmu.
- Sertakan Teks Pembuka di Body Email: Jangan mengirim email yang hanya berisi lampiran tanpa teks di bagian isi (content). Algoritma spam filter menyukai email yang memiliki keseimbangan antara teks dan lampiran.
Mulai Kirim Email Transaksional via API Mailketing
Mailketing menyediakan infrastruktur pengiriman email API terjangkau dengan sistem pembayaran pay per use — tanpa biaya bulanan yang mengikat. Daftar gratis di Mailketing, dapatkan API key kamu, dan mulai kirim ribuan email dengan attachment dalam hitungan menit!
