Yeniden Gönderme Özelliğiyle E-posta Gönderimi:
Node.js ve PHP RehberiResend, geliştirici dostu API'si ve yüksek teslimat oranlarıyla e-posta gönderimini bir üst seviyeye taşıyor. Projelerimize entegre etmek için ihtiyacımız olan kod:
Bu işleme başlamadan önce resend Dashboard üzerinden bir API Key almamız gerekiyor.

1- Node.Js İle Kullanım Nasıl Yapılır İlk adım olarak anlatımını yapalım arkadaşlar.
Node.js projelerinde resmi Resend SDK'sını kullanmak en temiz yoldur.
Kütüphaneyi Yüklemek İçin:
Bash:
npm install resend
Kod Örneği
JavaScript:
import { Resend } from 'resend';
const resend = new Resend('re_senin_api_anahtarin');
async function sendEmail() {
try {
const data = await resend.emails.send({
from: 'Onboarding <[email protected]>', // Kendi domaininizi eklediğinizde onu kullanın
to: ['[email protected]'],
subject: 'Merhaba Dünya!',
html: '<strong>Resend Node.js üzerinden başarıyla gönderildi!</strong>',
});
console.log('E-posta gönderildi:', data);
} catch (error) {
console.error('Hata:', error);
}
}
sendEmail();
2- PHP İle Kullanım
PHP'de Resend'in resmi SDK'sını veya doğrudan curl yöntemini kullanabilirsiniz.
SDK ile (Tavsiye Edilen)
Kütüphaneyi Yükleyin:Bash:
composer require resend/resend-php
Kod Örneği:
PHP:
<?php
require __DIR__ . '/vendor/autoload.php';
$resend = Resend::client('re_senin_api_anahtarin');
try {
$resend->emails->send([
'from' => '[email protected]',
'to' => '[email protected]',
'subject' => 'PHP SDK Testi',
'html' => '<strong>PHP SDK ile gönderim başarılı!</strong>',
]);
echo "E-posta alıcıya ulaştı.";
} catch (Exception $e) {
echo 'Hata: ' . $e->getMessage();
}
Düz PHP (Curl ile SDK'sız)
Eğer projenizde Composer yoksa bu yöntemi kullanabilirsiniz:PHP:
<?php
$apiKey = 're_senin_api_anahtarin';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.resend.com/emails');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'from' => '[email protected]',
'to' => '[email protected]',
'subject' => 'PHP Curl Testi',
'html' => '<strong>SDK kullanmadan gönderildi!</strong>'
]));
$headers = [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json'
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);
print_r($result);
E-posta Durumlarını Takip Etme
Resend üzerinden gönderilen e-postaların takibini alt kısımda belirttiğim olaylarla takip edebiliriz arkadaşlar.
Sent: Başarıyla gönderildi.
Delivered: Alıcının sunucusuna ulaştı.
Bounced: Alıcı sunucu e-postayı reddetti (Yanlış adres vb.).
Opened: Alıcı e-postayı açtı.
Clicked: E-posta içindeki bir linke tıklandı.
E-Postaya Resim Ekleme (Gömme)
E-postalarınızda görselleri iki farklı yöntemle kullanabilirsiniz:
Yöntem A: Harici URL Kullanmak (En Pratik Yol)
Resminiz internette bir sunucuda veya hızlı resim servisinde yüklü ise, doğrudan <img> etiketiyle çağırabilirsiniz.Node.js Örneği:
JavaScript:
resend.emails.send({
from: '[email protected]',
to: '[email protected]',
subject: 'Görsel İçeren E-posta',
html: '<p>İşte harika bir resim:</p><img src="https://resend.com/static/logo.png" alt="Logo" width="200">',
});
Yöntem B: Content ID (CID) ile Resim Gömmek
Resmi bir dosya olarak ekleyip (attachment), e-postanın gövdesine gömebilirsiniz. Bu yöntem, resmin alıcıda "resimleri göster" demeden açılma şansını artırır.Node.js ile CID Kullanımı:
JavaScript:
resend.emails.send({
from: '[email protected]',
to: '[email protected]',
subject: 'Gömülü Resim Testi',
// HTML içinde "cid:dosya_adi" şeklinde çağırıyoruz
html: '<p>Merhaba, bu bir gömülü resimdir:</p><img src="cid:profil_resmi">',
attachments: [
{
filename: 'profil.png',
content: buffer_veya_base64_verisi, // Resmin verisi
cid: 'profil_resmi', // HTML içindeki src ile eşleşmeli
},
],
});
PHP SDK ile CID Kullanımı:
PHP:
$resend->emails->send([
'from' => '[email protected]',
'to' => '[email protected]',
'subject' => 'PHP CID Testi',
'html' => '<html><body><img src="cid:logo_id"></body></html>',
'attachments' => [
[
'content' => base64_encode(file_get_contents('logo.png')),
'filename' => 'logo.png',
'cid' => 'logo_id',
],
],
]);
Resend, gönderdiğiniz her e-postayı Dashboard üzerinde 48 saat boyunca görüntülenebilir bir link olarak saklar. Eğer e-postadaki bir görselin düzgün görünüp görünmediğini test etmek isterseniz, Dashboard'daki "Share email" özelliğini kullanarak önizleme yapabilirsiniz.


