E-posta ve URL Yönlendirme

1.7k görüntülenme Markdown

Alan adına gelen postayı ve ziyaretçiyi başka bir adrese gönderen yedi uç.

Genel Bakış

Bu yedi uç alan adına gelenlerin nereye gideceğini belirler. İkisi ayrı iştir: e-posta yönlendirmesi postayı, URL yönlendirmesi ziyaretçiyi başka bir yere gönderir.

E-posta yönlendirmesinde posta kutusu açılmaz; gelen posta olduğu gibi başka bir adrese iletilir. URL yönlendirmesi ise alan adında bir site barındırmadan onu başka bir adrese bağlar.

Referans

E-posta Yönlendirmelerini Listeleme

get/api/v1/admin/services/{id}/domain/email-forwards
Services/GetDomainEmailForwards admin

Alan adına gelen postanın nereye iletildiğini gösteren kayıtları döndürür.

Dönen alanlar data[] — 4
identitystringKaydın kimliği. Modül vermezse ön ek ve hedeften türetilir; yani hedefi değişen kaydın kimliği de değişir.
prefixstringKaynak adresin yerel kısmı.
sourcestringTam kaynak adres. Ön ek ile alan adından hesaplanır.
targetstringPostanın iletileceği adres.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// 'source' hesaplanmis bir alandir; yazarken degil YALNIZ okurken bulunur.
$forwards = Api::Services()->GetDomainEmailForwards(['id' => 520])['data'];
Yanıt
{
  "data": [
    {
      "identity": "3001",
      "prefix": "info",
      "source": "[email protected]",
      "target": "[email protected]"
    }
  ]
}

E-posta Yönlendirmesi Ekleme

post/api/v1/admin/services/{id}/domain/email-forwards
Services/AddDomainEmailForward admin 201

Alan adının bir adresine gelen postayı başka bir adrese iletir.

Gövde 2
prefixstringzorunluKaynak adresin yerel kısmı. Alan adı kendiliğinden eklenir.
targetstringzorunluPostanın iletileceği adres. Biçimi doğrulanır.
Dönen alanlar data — 2
prefixstringEklenen yönlendirmenin kaynak ön eki.
targetstringYönlendirmenin güncel hedefi.
Hatalar 7
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
email_fwd_fields_required422Zorunlu alanlardan biri boş.
invalid_email422Hedef geçerli bir e-posta adresi değil.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"prefix":"info","target":"[email protected]"}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ prefix: 'info', target: '[email protected]' }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'prefix' => 'info',
        'target' => '[email protected]',
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// On ek YALNIZ yerel kisimdir: tam adres gondermek '[email protected]@example.com' uretir.
Api::Services()->AddDomainEmailForward([
    'id'     => 520,
    'prefix' => 'info',
    'target' => '[email protected]',
]);

E-posta Yönlendirmesini Güncelleme

put/api/v1/admin/services/{id}/domain/email-forwards
Services/UpdateDomainEmailForward admin yalnız hedef değişir

Bir yönlendirmenin hedefini değiştirir. Kaynak ön eki değiştirilemez.

Gövde 4
prefixstringzorunluDeğiştirilecek kaydın kaynak ön eki.
target_newstringzorunluYeni hedef adres.
targetstringMevcut hedef. Aynı ön ekte birden çok kayıt varsa ayırt eder.
identitystringListeden gelen kayıt kimliği.
Dönen alanlar data — 2
prefixstringDeğişen kaydın kaynak ön eki.
targetstringYönlendirmenin güncel hedefi. target_new olarak gönderdiğiniz değerdir.
Hatalar 7
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
email_fwd_fields_required422Zorunlu alanlardan biri boş.
invalid_email422Hedef geçerli bir e-posta adresi değil.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"prefix":"info","target":"[email protected]","target_new":"[email protected]"}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    prefix: 'info',
    target: '[email protected]',
    target_new: '[email protected]',
  }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'prefix'     => 'info',
        'target'     => '[email protected]',
        'target_new' => '[email protected]',
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Ön eki degistirmek icin bu uc yoktur: eskisini silip yenisini eklersiniz.
Api::Services()->DeleteDomainEmailForward(['id' => 520, 'prefix' => 'info']);

Api::Services()->AddDomainEmailForward([
    'id'     => 520,
    'prefix' => 'contact',
    'target' => '[email protected]',
]);

E-posta Yönlendirmesini Silme

delete/api/v1/admin/services/{id}/domain/email-forwards
Services/DeleteDomainEmailForward admin

Bir e-posta yönlendirmesini kaldırır.

Gövde 3
prefixstringzorunluSilinecek kaydın kaynak ön eki.
targetstringHedef. Eşleşmeyi daraltır.
identitystringListeden gelen kayıt kimliği.
Dönen alanlar data — 2
deletedboolSilme başarılı mı.
prefixstringSilinen kaydın ön eki.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
email_fwd_fields_required422Zorunlu alanlardan biri boş.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"prefix":"info"}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ prefix: 'info' }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/email-forwards');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'DELETE',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['prefix' => 'info']),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Ayni on ekte birden cok hedef varsa yalniz on ek gondermek HEPSINI silebilir.
Api::Services()->DeleteDomainEmailForward([
    'id'     => 520,
    'prefix' => 'info',
    'target' => '[email protected]',
]);

URL Yönlendirmesini Okuma

get/api/v1/admin/services/{id}/domain/forwarding
Services/GetDomainForwarding admin

Alan adının başka bir adrese yönlendirilip yönlendirilmediğini döndürür.

Dönen alanlar data — 4
activeboolYönlendirme çalışıyor mu.
methodintYönlendirme tipi. Kalıcı ya da geçici; varsayılan kalıcı.
protocolstringHedefe hangi protokolle gidileceği.
domainstringYönlendirilecek adres.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/services/520/domain/forwarding' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/forwarding', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/forwarding');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
$response = Api::Services()->GetDomainForwarding(['id' => 520]);

URL Yönlendirmesini Ayarlama

put/api/v1/admin/services/{id}/domain/forwarding
Services/SetDomainForwarding admin siteyi kapatır

Alan adına gelen ziyaretçileri başka bir adrese gönderir.

Gövde 3
domainstringzorunluYönlendirilecek adres.
protocolstringHedefe hangi protokolle gidileceği. Varsayılan şifresiz.
methodintYönlendirme tipi. Varsayılan kalıcı; kalıcı yönlendirme tarayıcılarda önbelleğe alınır.
Dönen alanlar data — 4
activeboolYönlendirme çalışıyor mu.
methodintYönlendirme tipi. Kalıcı ya da geçici; varsayılan kalıcı.
protocolstringHedefe hangi protokolle gidileceği.
domainstringYönlendirilecek adres.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
domain_fwd_url_required422Hedef adres boş.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/forwarding' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"domain":"example.net","protocol":"https","method":301}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/forwarding', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    domain: 'example.net',
    protocol: 'https',
    method: 301,
  }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/forwarding');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'domain'   => 'example.net',
        'protocol' => 'https',
        'method'   => 301,
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Kalici yonlendirme tarayicilarda onbellege alinir: gecici deneme yapiyorsaniz 302 secin.
Api::Services()->SetDomainForwarding([
    'id'       => 520,
    'domain'   => 'example.net',
    'protocol' => 'https',
    'method'   => 302,
]);

URL Yönlendirmesini Kaldırma

delete/api/v1/admin/services/{id}/domain/forwarding
Services/CancelDomainForwarding admin

Yönlendirmeyi kaldırır ve alan adını kendi ad sunucularına bırakır.

Dönen alanlar data — 1
cancelledboolYönlendirme kaldırıldı mı.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/services/520/domain/forwarding' \
  -H "Authorization: Bearer $API_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/forwarding', {
  method: 'DELETE',
  headers: { Authorization: `Bearer ${apiKey}` },
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/forwarding');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'DELETE',
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Yonlendirmeyi kaldirmak alan adini ad sunucularina birakir; DNS kaydi yoksa site acilmaz.
Api::Services()->CancelDomainForwarding(['id' => 520]);

$records = Api::Services()->GetDnsRecords(['id' => 520])['data'];

Tuzaklar

Ön ek yalnız yerel kısımdır

Kaynak adresi alan adıyla birlikte göndermeyin: uç ön eke alan adını kendisi ekler. Tam adres gönderirseniz iki kez eklenmiş bir kaynak oluşur ve yönlendirme hiçbir zaman eşleşmez. Okurken gördüğünüz tam adres hesaplanmış bir alandır; yazarken kullanılmaz.

Yalnız ön ek göndermek hepsini silebilir

Silme ucunda yalnız ön ek zorunludur. Aynı ön ekte birden çok hedef varsa hedefi ya da kimliği vermeden gönderilen istek hepsini kaldırabilir, çünkü eşleşmeyi modül yapar. Tek bir kaydı silecekseniz hedefi de gönderin.

Ön ek güncellenemez

Güncelleme ucu yalnız hedefi değiştirir. Kaynak adresi değiştirmek için kaydı silip yenisini eklemeniz gerekir; arada gelen posta hiçbir yere iletilmez.

Kalıcı yönlendirme tarayıcıda kalır

Varsayılan yönlendirme tipi kalıcıdır ve tarayıcılar bunu önbelleğe alır. Yanlış bir hedefe kalıcı yönlendirme koyup sonra düzeltirseniz, daha önce ziyaret etmiş kullanıcılar bir süre eski hedefe gitmeye devam eder. Denerken geçici tipi seçin.

Yönlendirmeyi kaldırmak siteyi geri getirmez

Yönlendirme kaldırıldığında alan adı kendi ad sunucularına döner. O sunucularda bir kayıt yoksa alan adı hiçbir yere çıkmaz: önceden yönlendirme kullanıldığı için DNS kaydı hiç yazılmamış olabilir. Kaldırmadan önce kayıtlara bakın.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.