Alan adları
`domains.list`, `get` ve `update`.
Tüm metotlar
const domains = await openemail.domains.list()const domain = await openemail.domains.get('b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f') console.log(domain.receiving.verified, domain.sending.status)for (const address of domain.addresses) console.log(address.address, address.enabled) const updated = await openemail.domains.update(domain.id, { trackingHost: 'links.acme.com' })console.log(updated.tracking.status, updated.tracking.record?.name, updated.tracking.record?.value) await openemail.domains.update(domain.id, { trackingHost: null })Alım ve gönderim birbirinden bağımsız iki olgudur ve iki nesne hâlinde döndürülür. receiving.verified, alan adının MX kaydının postasını buraya getirdiği ve sahiplik doğrulamasının yayımlandığı anlamına gelir. sending ise giden imzalama denetimini bildirir: status değeri verified, pending, failed, no_identity veya unknown olur ve canSend, alan adından yapılacak bir gönderimin şu anda kabul edilip edilmeyeceğini söyler. Bir günden eski olumsuz bir sonuç, ret değil bilinmeyen sayılır; bu yüzden status yerine canSend üzerinden dallanın.
update, alan adının özel izleme alan adını (links.acme.com gibi bir alt alan adı) ayarlar, yeniden denetler veya kaldırır ve get ile aynı DomainDetailResource değerini döndürür. tracking bunu her okumada bildirir. Bir denetim geçene kadar tracking.status değeri pending olur ve izlenen bağlantılar ile açılma pikseli varsayılan OpenEmail konağını kullanmayı sürdürür. Bir denetim geçtiğinde değer active olur ve alan adından giden yeni postalar her ikisi için de izleme alan adını kullanır.
get ayrıca alan adındaki adresleri listeler. İlgili çağrı addresses.list()'tir: BU ANAHTARIN From başlığına koyabileceği her adres; bu daha dar bir kümedir.
Parametreler: domains.get
domainIdstringzorunlu- `domains.list` çağrısından gelen id: alan adı eklendiğinde üretilen bir UUID, konak adı değil; dolayısıyla `get('example.com')` hiçbir şey bulmaz. Arama yalnızca id ile değil anahtarın kendi bağlantısıyla da sınırlıdır; bu yüzden başka bir çalışma alanının alan adı 403 değil 404 verir.
Parametreler: domains.update
idstringzorunlu- `get` çağrısının aldığı alan adı id'sinin aynısı. Gerektirdiği kapsam `domains:write`'tır.
patch.trackingHoststring | nullzorunlu- Alan adının bir alt alan adı, en fazla 512 karakter; örneğin `links.acme.com`. Kırpılır ve küçük harfe çevrilir; baştaki `https://` veya `http://`, yol ve sondaki nokta temizlenir. Yeni bir değer aynı çağrıda doğrulanır, kaydedilir ve denetlenir. Alan adının zaten sahip olduğu değer, son denetimin üzerinden 30 saniyeden az geçmediyse denetimi yeniden çalıştırır. `null` veya boş bir dizge izleme alan adını kaldırır.
Reddedilen bir konak, param alanında trackingHost adını taşıyan bir OpenEmailApiError fırlatır: kullanılamayacak bir ad, örneğin alan adının dışındaki bir ad için 422 invalid_tracking_host; receiving.verified false iken ve alan adının _openemail-challenge TXT kaydı henüz yayımlanmamışken yeni bir konak için 409 domain_not_verified; başka bir alan adının zaten kullandığı bir ad için veya izleme alan adı farklı bir OpenEmail sunucusu tarafından yönetiliyorsa 409 tracking_host_in_use. Belirli adreslerle sınırlanmış bir anahtar 422 capability_unsupported alır, çünkü bir izleme alan adı o alan adındaki her adres için geçerlidir.
Yanıt: DomainDetailResource
object'domain'- Hem `list` satırlarında hem de burada her zaman `domain` dizgesi.
idstring- Alan adının UUID'si. Satırın ömrü boyunca sabittir ve diğer domain çağrılarının kabul ettiği tek tanıtıcıdır.
domainstring- Çıplak konak adı, küçük harfle: `example.com`. Ürünün tamamında benzersizdir, alan adı başına tek sahip; dolayısıyla iki çalışma alanı birden onu sahiplenemez.
receiving.verifiedboolean- DNS'te alan adının MX kaydının postasını buraya getiren bir konağı gösterdiği ve satır bir doğrulama belirteci taşıyorsa eşleşen `_openemail-challenge` TXT kaydının da bulunduğu görüldüğünde true olur. MX tek başına hiçbir şey kanıtlamaz, çünkü posta aldığımız her alan adı aynı konak adlarını yayımlar; belirtecin var olma nedeni de, bu bayrağın gelen teslimatın postayı kabul etmeden önce denetlediği kapı olmasının nedeni de budur.
receiving.verifiedAtstring | null- Doğrulamanın ne zaman geçtiği, ISO-8601. Geçmediği sürece null olur ve `verified` tam olarak bu sütundan türetilir; dolayısıyla ikisi asla çelişemez.
receiving.catchAllboolean- Herhangi bir local-part'ın kabul edilip edilmediği. Bu kural yürürlüğe girdikten sonra eklenen alan adlarında varsayılan olarak açıktır; kapalıyken yalnızca alan adında tanımlı adresler kabul edilir, geri kalanı SMTP aşamasında reddedilir; böylece gönderen sessizlik yerine bir geri dönüş (bounce) alır.
receiving.lastCheckedAtstring | null- DNS'e bu alan adının en son ne zaman sorulduğu. Null hiç bakılmadığı anlamına gelir; bu da bir dakika önce alan adı eklemiş biri için bir başarısızlıktan çok farklı okunur. Bu uç nokta saklanan sonucu bildirir, kendi başına asla denetim çalıştırmaz.
receiving.errorstring | null- Son denetimin neden geçmediği, sahibin harekete geçebileceği sözcüklerle: `No MX records yet. DNS changes can take a few minutes to spread.` tipik bir örnektir. Denetim geçtiğinde null olur ve türetilmek yerine saklanır; böylece bir yeniden yükleme ile zamanlanmış yeniden denetim aynı şeyi söyler.
sending.status'verified' | 'pending' | 'failed' | 'no_identity' | 'unknown'- Son denetimin gördüğü hâliyle giden imzalama durumu. Bu istekte yoklanmak yerine saklanan denetimden okunur; dolayısıyla ne kadar eski olduğunu `sending.checkedAt` söyler.
sending.canSendboolean- Bu alan adından yapılacak bir gönderimin şu anda kabul edilip edilmeyeceği. Bir günden eski olumsuz bir sonuç ret değil bilinmeyen sayılır; bu yüzden `status` değeri `pending` iken bu true olabilir. Göndermeden önce buna göre dallanın: false olması, bu alan adından `emails.send` çağrısının 409 `domain_not_sendable` ile reddedileceği anlamına gelir.
sending.checkedAtstring | null- İmzalama durumunun en son ne zaman denetlendiği, ISO-8601. Null hiç denetlenmediği anlamına gelir; bu da bir başarısızlıktan çok farklı okunur.
sending.errorstring | null- Son imzalama hatasının sözel açıklaması ya da denetim geçtiğinde null.
sending.notestring- `sending.status` değerine göre seçilen beş cümleden biri; o durumun ne anlama geldiğini, alan adı sahibinin harekete geçebileceği sözcüklerle anlatır. İnsanın okuması için yazılmış metindir. Buna değil, `sending.canSend` değerine göre dallanın.
trackingDomainTracking- Alan adının özel izleme alan adı; hem `list` satırlarında hem de burada bulunur ve `update` çağrısının değiştirdiği şeydir.
tracking.hoststring | null- İzleme alan adı, örneğin `links.acme.com`, ya da hiçbiri ayarlı değilse null.
tracking.status'none' | 'pending' | 'active' | 'failed'- `none` hiçbir izleme alan adının ayarlı olmadığı, `pending` hiç denetim geçmediği, `active` yeni postaların onu kullandığı ve `failed` daha önce geçmiş olup bu arada kullanımdan düştüğü anlamına gelir. Etkin bir konak, üst üste üç başarısız denetimin ardından ya da son geçen denetimi 2 saatten eski olduğunda kullanımdan düşer.
tracking.activeboolean- Tam olarak `status` değeri `active` olduğunda true olur; yani alan adından giden yeni postalardaki izlenen bağlantılar ve açılma pikseli o konağı kullandığında.
tracking.targetstring- CNAME kaydının göstereceği adres; yalnızca bu izleme alan adı için hazırlanır. `host` null iken ve yeni bir konak için adres henüz hazırlanırken boş dizgedir.
tracking.record{ type: 'CNAME'; name: string; value: string } | null- Yayımlanacak kayıt: adı `host`, değeri `target` olur. İzleme alan adı yokken ve yeni bir konak için adres henüz hazırlanırken null olur.
tracking.checkedAtstring | null- Konağın en son ne zaman denetlendiği, ISO-8601. İlk denetime kadar null.
tracking.verifiedAtstring | null- Bir denetimin en son ne zaman geçtiği, ISO-8601. Hiç denetim geçmemiş bir konakta null.
tracking.errorstring | null- Son denetimin ne bulduğu, alan adı sahibinin harekete geçebileceği sözcüklerle. Son denetim geçtiyse veya hiç denetim çalışmadıysa null. Bir veya iki denetimi başarısız olan bir konak hâlâ `active` durumundadır ve nedeni burada taşır.
addressesArray<{ address: string; enabled: boolean }>- Alan adındaki her adres satırı; `get` çağrısının bir `list` satırına eklediği şey budur. Teslimatın catch-all altında kendiliğinden yazdığı satırları da içerir ve bunlar catch-all kapatıldığı anda kabul edilmeyi bırakır; dolayısıyla bu dizi, posta alacak adreslerin listesi değildir.
addresses[].addressstring- Saklanan local-part ile konak adından yeniden kurulan ve küçük harfe çevrilen tam adres; böylece her zaman yukarıdaki `domain` ile eşleşir, ondan sapmaz.
addresses[].enabledboolean- False adresi devre dışı bırakır ve devre dışı bir adres, catch-all açık olsa bile reddedilir. Her satır her hâlükârda listelenir; bu yüzden diziyi çalışan adreslerin kümesi olarak okumak yerine bu alana göre filtreleyin.
createdAtstring- Alan adı satırının ne zaman eklendiği, ISO-8601. Ne zaman doğrulandığı değil: o `receiving.verifiedAt` alanıdır ve bu alan doluyken o null olabilir.