Alan adları
`domains->list`, `listAll`, `iterate`, `get` ve `update`.
Her yöntem
$page = $client->domains->list(); foreach ($page as $row) { echo $row['domain'], ' ', $row['sending']['canSend'] ? 'can send' : 'cannot send yet', PHP_EOL;} $domain = $client->domains->get('b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f');echo $domain['receiving']['verified'] ? 'receiving' : 'not verified yet', ' ', $domain['sending']['status'], PHP_EOL; foreach ($domain['addresses'] as $entry) { echo $entry['address'], ' ', $entry['enabled'] ? 'on' : 'off', PHP_EOL;}Alım ve gönderim birbirinden bağımsız iki olgudur ve iki dizi 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 $domain['sending']['canSend'] olarak okunan canSend üzerinden dallanın.
list alfabetik sırayla alan adlarından oluşan bir OpenEmail\Result\Page döndürür, listAll ise hepsini tek bir dizi içinde döndürür. iterate onları birer birer veren bir Generator döndürür.
$domainId = 'b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f'; $updated = $client->domains->update($domainId, ['trackingHost' => 'links.acme.com']);$record = $updated['tracking']['record'];echo $updated['tracking']['status'], ' ', $record['name'] ?? '', ' ', $record['value'] ?? '', PHP_EOL; $client->domains->update($domainId, ['trackingHost' => null]);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ı diziyi 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 alan adındaki adresleri de listeler. İlgili çağrı addresses->list'tir: bu anahtarın bir From başlığına koyabileceği, daha dar kapsamlı adresler; her biri bir canSend sonucuyla birlikte. Bunları items yerine addresses içinde, domains ve unrestricted yanında tutan bir OpenEmail\Result\AddressBookPage döndürür. Onun listAll metodu tek bir OpenEmail\Result\AddressBook döndürür.
appHost kendi başına bir ad alanıdır: $client->appHost. get, set, verify ve delete, çalışma alanının web uygulaması adresini okur ve değiştirir: bu alan adlarından birinde ya da çalışma alanının denetimindeki başka herhangi bir alan adında, çalışma alanındaki kişilerin çalışma alanının markasıyla oturum açtığı mailbox.acme.com gibi bir alt alan adı. set yayımlanacak DNS kayıtlarını record içinde ve çalışma alanının dışındaki bir alan adında ayrıca ownershipRecord içinde döndürür. delete ve bir adresi değiştiren set, bir OAuth uygulamasından doğrulama kodu ister: kod alınana kadar çağrı, isStepUpRequired() değeri true olan bir 403 fırlatır.
branding bu markayı ayarlar. branding->get; amblemin, logonun, karanlık mod logosunun ve oturum açma fotoğrafının bağlantılarını, iki yazı tipini ve oturum açma arka planını okur. branding->update yazı tiplerini ve arka planı değiştirir, branding->uploadImage($variant, $data, contentType: ...) dört görselden birini yükler, branding->removeImage($variant) ise birini kaldırır. Varyant mark, wordmark, wordmark-dark ya da login-background olur ve OpenEmail\Constants\BrandImageVariants bunları adlandırır. Veri bir bayt dizesi, bir akış kaynağı, bir SplFileInfo ya da bir PSR-7 akışı veya yüklenmiş dosyadır. new \SplFileInfo('logo.svg') gibi bir SplFileInfo, bir dosya üzerinde açılmış bir akış ya da bir Laravel veya Symfony yüklemesi türünü kendisiyle getirir. Diğer baytlar contentType: gerektirir ve türü olmayan bir görsel 422 invalid_image ile reddedilir. Web uygulaması adresine ve ücretli bir planda çalışma alanı adına gönderilen e-postalara markasını veren şey logodur.
Parametreler: domains->get
idstringzorunlu- `domains->list` çağrısından gelen kimlik; ana bilgisayar adı değil, alan adı eklenirken üretilen bir UUID'dir. Bu yüzden `get('example.com')` hiçbir şey bulmaz. Arama yalnızca kimlikle değil, anahtarın kendi çalışma alanıyla da sınırlıdır; bu yüzden başka bir çalışma alanının alan adı 403 değil, `NotFoundException` olarak fırlatılan bir 404 verir. Boş bir kimlik, hiçbir şey gönderilmeden önce `InvalidArgumentException` fırlatır.
Parametreler: domains->update
idstringzorunlu- `get` çağrısının aldığı alan adı id'sinin aynısı. Gerektirdiği kapsam `domains:write`'tır.
trackingHoststring or null- Alan adının en fazla 512 karakterlik bir alt alan adı, örneğin `links.acme.com`. Boşlukları kırpılır ve küçük harfe çevrilir; baştaki `https://` ya da `http://`, bir yol ve sondaki nokta çıkarılır. 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 denetim 30 saniyeden daha yakın bir zamanda yapılmadıysa denetimi yeniden çalıştırır. İzleme alan adını kaldırmak için null ya da boş bir dize geçirin; olduğu gibi bırakmak için anahtarı belirtmeyin.
Reddedilen bir konak, param içinde trackingHost belirten bir ApiException fırlatır: kullanılamayan bir ad için (örneğin alan adının dışındaki bir ad) 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 ya da izleme alan adı farklı bir OpenEmail sunucusu tarafından yönetiliyorsa 409 tracking_host_in_use. 422 ValidationException olarak, her 409 ise ConflictException olarak gelir. Belirli adreslerle sınırlı bir anahtar 422 capability_unsupported alır, çünkü bir izleme alan adı alan adındaki her adrese uygulanır.
Değişiklik, API'nin camelCase adlarıyla anahtarlanmış tek bir dizidir; bu yüzden tracking_host gibi bir anahtar yazıldığı gibi gönderilir ve 422 unknown_parameter ile reddedilir. update ayrıca catchAll, files.acme.com gibi bir dosya alan adı için storageHost ve dmarcPolicy alır. Her anahtar isteğe bağlıdır ve metot başvurusu her birini anlatır. İstemci update çağrısını bir okuma gibi yeniden dener, çünkü bir tekrar konağı zaten ayarlanmış bulur ve en fazla onu yeniden denetler.
Yanıt: bir alan adı (domains->get)
objectstring- Hem `list` satırlarında hem de burada her zaman `domain` dizgesi.
idstring- Alan adının UUID'si. Kaydın ömrü boyunca sabittir ve diğer alan adı ç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.verifiedbool- 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 or null- Doğrulamanın geçtiği an, bir ISO 8601 dizesi olarak. Geçmediği sürece null'dır ve `verified` tam olarak bu sütundan türetilir; bu yüzden ikisi asla çelişmez.
receiving.catchAllbool- Herhangi bir yerel kısmın kabul edilip edilmediği. Bu kural olduğundan beri eklenen alan adlarında varsayılan olarak açıktır. Kapalıyken yalnızca alan adında adı geçen adresler kabul edilir, geri kalanlar SMTP aşamasında reddedilir; bu yüzden gönderen sessizlik yerine bir geri dönme iletisi alır.
receiving.lastCheckedAtstring or null- DNS'e bu alan adı hakkında en son ne zaman soru sorulduğu. DNS'e hiç sorulmadıysa null'dır; bu da bir dakika önce alan adı eklemiş biri için bir başarısızlıktan çok farklı okunur. Doğrulanmamış bir alan adını okumak, son denetim 20 saniyeden eskiyse DNS'e yeniden sorar; bu yüzden `get` ile yoklamak doğrulamayı beklemenin bir yoludur, `verify` ise hemen denetler.
receiving.errorstring or null- Son denetimin neden geçmediği, sahibin üzerine işlem yapabileceği sözcüklerle. Tipik bir örnek: `No MX records yet. DNS changes can take a few minutes to spread.` Denetim geçtiğinde null olur. Türetilmez, saklanır; bu yüzden bir yeniden yükleme ile zamanlanmış yeniden denetim aynı şeyi söyler.
sending.statusstring- Son denetimin gördüğü hâliyle giden imzalama durumu: `verified`, `pending`, `failed`, `no_identity` ya da `unknown`. Saklanan denetimden okunur; bu yüzden ne kadar eski olduğunu `sending.checkedAt` söyler.
sending.canSendbool- 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 or null- İmzalama durumunun en son ne zaman denetlendiği, bir ISO 8601 dizesi olarak. Hiç denetlenmediyse null'dır; bu da bir başarısızlıktan çok farklı okunur.
sending.errorstring or 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 ve o durumun ne anlama geldiğini bir alan adı sahibinin üzerine işlem yapabileceği sözcüklerle söyleyen beş cümleden biri. Bir insanın okuması için yazılmış metindir; bu yüzden dallanmayı buna göre değil, `sending.canSend` değerine göre yapın.
trackingarray- 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 or null- İzleme alan adı, örneğin `links.acme.com`, ya da hiçbiri ayarlı değilse null.
tracking.statusstring- `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.activebool- Tam olarak `status` `active` iken true olur; yani alan adından gönderilen yeni postalardaki izlenen bağlantılar ve açılma pikseli host'u kullandığında.
tracking.targetstring- CNAME kaydının işaret ettiği, yalnızca bu izleme alan adı için hazırlanmış adres. `host` null olduğu sürece ve yeni bir host'un adresi hâlâ hazırlanırken boş bir dizedir.
tracking.recordarray or null- Yayımlanacak kayıt: `type` (her zaman `CNAME`), `name` ve `value` içeren bir dizi; adı `host` değerinden gelir, değeri ise `target`'tır. İzleme alan adı yokken ve yeni bir konak için adres hâlâ hazırlanırken null'dır; bu yüzden `$domain['tracking']['record']['value'] ?? null` onu güvenle okur.
tracking.checkedAtstring or null- Konağın en son ne zaman denetlendiği, bir ISO 8601 dizesi olarak. İlk denetime kadar null.
tracking.verifiedAtstring or null- Bir denetimin en son ne zaman geçtiği, bir ISO 8601 dizesi olarak. Hiç denetim geçmemiş bir konak için null.
tracking.errorstring or null- Son denetimin ne bulduğu, alan adı sahibinin üzerine işlem yapabileceği sözcüklerle. Son denetim geçtiyse ya da henüz hiç denetim yapılmadıysa null. Bir ya da iki denetimi geçememiş bir konak hâlâ `active` durumundadır ve nedeni burada taşır.
addressesarray- 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 kendisinin yazdığı satırları da içerir ve bunlar catch-all kapatıldığı anda kabul edilmez olur; bu yüzden liste, 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[].enabledbool- False adresi devre dışı bırakır ve devre dışı bir adres catch-all açıkken bile reddedilir. Her satır her durumda listelenir; bu yüzden listeyi çalışan adresler kümesi olarak okumak yerine buna göre filtreleyin.
createdAtstring- Alan adı satırının eklendiği an, bir ISO 8601 dizesi olarak. Alan adının doğrulandığı an değildir: o `receiving.verifiedAt`'tir ve bu alan ayarlıyken null olabilir.