Alan adları ve adresler
Alan adları ekleyin ve doğrulayın, gereken DNS kayıtlarını okuyun, üzerlerindeki adresleri yönetin ve hangi adreslerle gönderim yapabileceğinizi kontrol edin.
Genel bakış
Alan adlarınızı iki ad alanı kapsar. openemail domains çalışma alanına bağlı alan adlarını yönetir: eklenmeleri ve kaldırılmaları, her birinin gerektirdiği DNS kayıtları, posta alıp gönderebildiği, catch-all ayarı, izleme ve dosya alan adları ve üzerindeki adresler. openemail addresses ise daha dar bir soruyu yanıtlar: kullandığınız anahtarın ya da oturumun hangi adreslerle gönderim yapabileceği.
- Bir alan adı komutu,
domains listya dadomains createkomutundan gelen bir UUID olan alan adı id'sini alır. Onun yerine ana makine adı kabul edilmez, bu yüzdenopenemail domains get acme.com404 verir ve5koduyla çıkar. - Bir adres komutu önce alan adı id'sini, sonra
domains list-addressesya dadomains create-addresskomutundan gelen bir UUID olan adres id'sini alır. domainveaddressda ad alanı adı olarak çalışır. Alan adı fiillerils,show,new,editvermgibi alışılmış takma adlara yanıt verir;addresses listde öyle. Bir alan adındaki adresler için olancreate-addressgibi beş fiilin ise hiç takma adı yoktur.openemail <command> --helpher bağımsız değişkeni ve bayrağı türüyle, çağrının gerektirdiği kapsamla, yöntemi ve yoluyla ve neyin döndüğüyle listeler. Aynı sayfayı veri olarak almak için--jsonekleyin.
Tüm komutlar
| Komut | Ne yapar |
|---|---|
| openemail domains list | Çalışma alanının alan adlarını alfabetik olarak, alma, gönderme, izleme ve dosya durumlarıyla listeleyin |
| openemail domains get <id> | Tek bir alan adını adresleri, kullandığı her DNS kaydı ve her birinin bulunup bulunmadığı ile DMARC okumasıyla birlikte okuyun |
| openemail domains create --domain <value> | Bir alan adı ekleyin. Yanıt, yayımlanacak her DNS kaydını zaten bir kez kontrol edilmiş olarak içerir |
| openemail domains verify <id> | Alan adının DNS'ini hemen kontrol edin ve alan adını kontrolün bıraktığı hâliyle döndürün |
| openemail domains update <id> | catch-all'ı açın ya da kapatın, izleme alan adını ve dosya alan adını ayarlayın ya da kaldırın |
| openemail domains delete <id> | Alan adını ve üzerindeki her adresi kaldırın. Onay ister |
| openemail domains list-addresses <id> | Bir alan adındaki adresleri id'leri, etiketleri, etkinlik durumları ve her birinin en son ne zaman posta aldığıyla listeleyin |
| openemail domains create-address <id> --local-part <value> | Alan adında etkin bir adres oluşturun; isteğe bağlı bir --label ile |
| openemail domains get-address <id> <address-id> | Bir alan adındaki tek bir adresi okuyun |
| openemail domains update-address <id> <address-id> | Bir adresi --label ile yeniden adlandırın ya da --no-enabled ve --enabled ile kapatıp açın |
| openemail domains delete-address <id> <address-id> | Bir adresi alan adından kaldırın. Onay ister |
| openemail addresses list | Bu anahtarla ya da oturumla hangi adreslerden gönderim yapabileceğinizi ve her alan adının alma ve gönderme durumunu listeleyin |
Her bayrak kendi komutunun yardımındadır, örneğin openemail domains update --help ya da openemail domains create-address --help.
Alma ve gönderme
Bir alan adı birbirinden bağımsız iki olgu bildirir. receiving.verified, genel DNS MX kayıtları ve _openemail-challenge TXT kaydıyla yanıt verdiği anda true olur ve o andan itibaren alan adı posta alır. sending.status, son kontrolün gördüğü imzalama durumudur: verified, pending, failed, no_identity ya da unknown. sending.canSend, alan adından yapılacak bir gönderimin şu anda kabul edilip edilmeyeceğini söyler ve bir günden eski olumsuz bir karar bilinmiyor sayılır; bu yüzden bir betik status yerine canSend değerine göre dallanmalıdır. Bu değer false olduğu sürece alan adından yapılan bir gönderim 409 domain_not_sendable ile reddedilir.
domains createilk DNS kontrolünü çağrı sırasında yapar, bu yüzdenrecordsiçindeki her kayıt zaten birstatustaşır:found,missingya da henüz kontrol edilmediyse null. Değerler alan adına özgü olduğundan her kaydı tam verildiği gibi yayımlayın.domains verifyhemen kontrol eder. Son kontrolden sonraki 10 saniye içinde yeni bir şey kontrol etmez ve alan adını olduğu gibi döndürür. Doğrulanmış bir alan adında imzalama kayıtlarını yeniden kontrol eder, böylecesendinggünceldir.- Doğrulanmamış bir alan adında
domains get, son kontrol 20 saniyeden eskiyse yeniden kontrol eder; bu yüzdengetile düzenli sorgulama da işe yarar ve yalnızcadomains:readgerektirir,verifyisedomains:writegerektirir. - Az önce yayımlanan bir kaydın genel DNS'te görünmesi birkaç dakika sürebilir.
Terminalde get, create ve verify her satıra bir alan yazdırır; receiving, sending ve records gibi iç içe bloklar sıkıştırılmış JSON olarak görünür. --json ekleyin ve aşağıdaki örneklerde olduğu gibi jq gibi bir araçla okuyun.
Catch-all, izleme ve dosya alan adları
domains update birbirine bağlı olmayan üç ayarı değiştirir. Vermediğiniz bir bayrağa dokunulmaz; hiç bayrak vermezseniz alan adı değişmeden döner.
| Bayrak | Neyi değiştirir |
|---|---|
| --catch-all, --no-catch-all | Açıkken alan adında kimsenin oluşturmadığı her adrese gelen postayı kabul eder ve adres ilk mesajından itibaren list-addresses içinde görünür. Kapalıyken, daha önce catch-all'ın yakaladıkları dahil, elle oluşturulmamış her adrese gelen postayı reddeder. Yeni bir alan adı bu ayar açık olarak başlar |
| --tracking-host <value> | İzlenen bağlantılar ve açılma pikseli için links.acme.com gibi bir alt alan adı. null onu kaldırır |
| --storage-host <value> | Alan adından gönderilen dosyaların indirme bağlantıları için files.acme.com gibi bir alt alan adı. null onu kaldırır |
- Yeni bir host aynı çağrıda kaydedilir ve kontrol edilir. Yanıtın
trackingya dastoragebloğundakirecord.nameadıyla verecord.valuedeğeriyle, her türlü proxy kapalı olarak bir CNAME kaydı yayımlayın. Bir host'u yeniden kurmak ona farklı bir değer verebilir, bu yüzden en son yanıtın bildirdiği değeri yayımlayın. - Bir kontrol geçene kadar host
pendinggörünür ve yeni posta varsayılan OpenEmail host'unu kullanmaya devam eder. Bir kontrol geçtiğindeactivegörünür. OpenEmail kendiliğinden kontrol etmeyi sürdürür; art arda üç kontrolde başarısız olan ya da son başarılı kontrolü 2 saat önce olan etkin bir hostfailedgörünür ve yeni posta varsayılan host'a döner. - Bir host'u
--tracking-host nullörneğindeki gibinullile kaldırın.--tracking-host=gibi boş bir değer CLI'da bir kullanım hatasıdır ve2koduyla çıkar. - Yeni bir host için alan adının doğrulanmış olması ya da en azından
_openemail-challengeTXT kaydının yayımlanmış olması gerekir. Aksi hâlde çağrı 409domain_not_verifiedile reddedilir. - Bayraklar sırayla uygulanır: önce catch-all, sonra izleme alan adı, sonra dosya alan adı. Reddedilen sonraki bir bayrak, önceki bir değişikliği kaydedilmiş bırakabilir; bu yüzden her birinin kendi başına geçerli olması gerektiğinde onları ayrı çağrılarda gönderin.
Bir alan adındaki adresler
Bir alan adı, elle ya da API üzerinden oluşturulan adresleri ve catch-all'ının onlara ilk posta geldiğinde yakaladığı adresleri tutar. list-addresses devre dışı olanlar dahil iki türü de gösterir. catch-all'ın kendisi bir satır değildir: alan adındaki receiving.catchAll değeridir.
create-address, @ işaretinden önceki kısım olan--local-partile isteğe bağlı bir--labelalır. Alan adının henüz doğrulanmış olması gerekmez, ancak adres doğrulanana kadar hiçbir şey almaz. Tek başına*reddedilir, çünkü catch-all böyle yazılır.- Zaten var olan ya da kaldırılmış bir adresi oluşturmak hata değildir. Adres, gönderdiğiniz etiketle ya da etiketsiz olarak etkin biçimde döner ve id'sini korur. catch-all'ın yakaladığı bir adres elle oluşturulmuş bir adrese dönüşür, bu yüzden catch-all kapatıldıktan sonra da posta almaya devam eder.
- catch-all açıkken yeni bir adres, gizlilik ayarları dışında, catch-all'ın imza ve izleme gibi adrese özel ayarlarıyla başlar. Bunlar bir kez kopyalanır ve sonrasında eşitlenmez.
update-address --no-enabledadresin posta almasını durdurur, böylece gönderenler bir geri dönme alır ve ondan hiçbir şey gönderilemez. Adres postasını, ayarlarını ve ona erişebilen kişileri korur;--enabledkaldığı yerden devam ettirir.--labelonu yeniden adlandırır,--label nulladı kaldırır.delete-addressdaha ileri gider. Adrese gelen posta catch-all açıkken bile reddedilir, yönlendirmesi durur, ayarları silinir, ona erişim verilen kişiler bu erişimi kaybeder ve parolayla oturum açma yetkisi iptal edilir. Daha önce aldığı posta posta kutusunda kalır. Onu yeniden oluşturmak aynı id'yi eski ayarlar ya da erişim olmadan geri getirir.
Hangi adreslerle gönderim yapabilirsiniz
openemail addresses list, bir 403 from_address_forbidden hatasının ardındaki soruyu yanıtlar: çağrıyı yaptığınız anahtarın ya da oturumun From alanına hangi adresleri koyabileceği. Bir okuma kapsamı yerine emails:send gerektirir, çünkü bir gönderimin neyi kabul edeceğini anlatır.
- Terminalde iki tablo yazdırır: önce adresler, her biri etkin olup olmadığı ve ondan gönderim yapıp yapamayacağınızla; sonra alan adları, her biri alma ve gönderme için doğrulanıp doğrulanmadığı ve catch-all ayarıyla.
unrestricted, kimlik bilgisi hiçbir şeyle daraltılmadığında true olur. O durumda çalışma alanının alan adlarındaki, kimsenin oluşturmadıkları dahil, her local-part ile gönderim yapılabilir. Aksi hâldecanSendyalnızca kimlik bilgisinin, tuttuğu bütün bir alan adı ya da kendi adres listesi yoluyla kapsadığı etkin bir adres için true olur.canSend, devre dışı bir adres, kimlik bilgisinin kapsamadığı bir adres ve alan adı henüz imzalayamayan bir adres için false olur.- Yalnızca oluşturulmuş adresler listelenir. Bütün bir alan adını tutan bir kimlik bilgisi yine de oradaki her local-part ile gönderim yapabilir; listesindeki, arkasında posta kutusu olmayan bir adresten de burada görünmeden gönderim yapılabilir.
--jsonile, diğer listelerin yazdırdığı{ items, hasMore, nextCursor }belgesi yerine, tek bir sayfa için{ unrestricted, addresses, domains, hasMore, nextCursor },--allile de{ unrestricted, addresses, domains }yazdırır.--allbir kanala yönlendirildiğinde ya da--ndjsonile her satıra bir adres yazdırır.
status, open ve DNS sağlayıcıları
openemail status oturumunuzu, addresses list ve domains list komutlarını aynı anda okur ve birlikte yazdırır. Sender addresses tablosu her adresi gönderim yapıp yapamadığı ve etkin olup olmadığıyla gösterir. Domains tablosu her alan adını alma için verified ya da not verified olarak, gönderim durumu ve catch-all ayarıyla gösterir. Her birinin ilk 100 kaydını gösterir ve geri kalanlar için --all komutunu adlandırır.
- Kimlik bilginizin okuyamadığı bir bölüm, örneğin
domains:readolmadan alan adları ya daemails:sendolmadan adresler, nedeniyle birlikte Not available der ve geri kalanı yine yazdırılır. - Henüz adres yoksa
openemail domains create --domain example.comönerir. openemail status --json,account,addresses,domainsveunavailableiçeren tek bir nesne yazdırır;unavailableokunamayan her bölümün nedenini verir.
Yeni bir alan adının kayıtlarının sizin için yazılması amacıyla bir DNS sağlayıcısı bağlamak, 0.0.2 sürümünde yalnızca web uygulamasında yapılır. openemail open providers ya da open dns o sayfayı açar. open domains alan adlarını ve DNS kayıtlarını, open addresses de adresleri açar. Yönlendirme de web uygulamasındadır ve open forwarding <address> onu tek bir adres için açar. --print tarayıcı açmak yerine bağlantıyı yazdırır.
OpenEmail'in bir alan adının DNS'ini kendisinin yazdığı durumlarda domains delete bu kayıtları geri alır ve alamadıklarını, DNS sağlayıcınızda kaldırmanız için leftBehind içinde listeler. Kendi yayımladığınız kayıtlara asla dokunulmaz, bu yüzden alan adı kaldırıldıktan sonra onları da kaldırın.
Örnekler
openemail domains create --domain acme.com --json > acme.jsonjq -r '.records[] | [.type, .name, .value, (.priority // "")] | @tsv' acme.jsonopenemail domains verify "$(jq -r .id acme.json)"id=b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6funtil openemail domains get "$id" --json | jq -e .receiving.verified > /dev/null; do sleep 30doneopenemail domains get "$id" --json | jq '.sending | {status, canSend, error}'openemail domains list-addresses "$id" --allopenemail domains create-address "$id" --local-part invoices --label Invoicesopenemail domains update "$id" --no-catch-all --dry-runopenemail domains update "$id" --no-catch-allinvoices adresini elle oluşturmak, catch-all kapatıldıktan sonra onun posta almaya devam etmesini sağlar; catch-all'ın yakaladığı diğer her adrese gelen posta ise reddedilir. Deneme çalıştırması PATCH isteğini ve gövdesini göndermeden yazdırır.
openemail domains update "$id" --tracking-host links.acme.com --json | jq '.tracking | {status, record, error}'openemail domains update "$id" --tracking-host nulladdress_id=$(openemail domains list-addresses "$id" --all | jq -r 'select(.address == "[email protected]") | .id')openemail domains update-address "$id" "$address_id" --no-enabledopenemail domains delete-address "$id" "$address_id" --yesÖnce adresi kapatmak --enabled ile geri alınabilir. Silme geri alınamaz ve bir betikte --yes gerektirir. Bir tarayıcı oturumuyla ayrıca bir doğrulama kodu ister ve --yes bunu asla atlamaz.
openemail domains list --all | jq -r 'select(.sending.canSend | not) | [.domain, .sending.status] | @tsv'openemail addresses list --all --json | jq -r '.addresses[] | select(.canSend) | .address'Kapsamlar, onaylar ve hatalar
| Kapsam | Komutlar |
|---|---|
| domains:read | domains list, get, list-addresses, get-address |
| domains:write | domains create, verify, update, delete, create-address, update-address, delete-address |
| emails:send | addresses list |
- Kapsamı olmayan bir oturum ya da anahtar
4çıkış koduyla durur, eksik kapsamın adını verir ve onu nasıl alacağınızı söyler. domains deletevedomains delete-addressonay ister. Hayır yanıtı10koduyla çıkar ve hiçbir şeyi değiştirmez. Gözetimsiz çalışırken ve--yesolmadan, hiçbir şey gönderilmeden2çıkış koduyla dururlar.- Bir tarayıcı oturumuyla bu iki silme işlemi de, web uygulamasında olduğu gibi, bir doğrulama kodu ister. Gözetimsiz çalışırken kodu kimse yazamaz, bu yüzden komut
4çıkış koduyla durur. Önceopenemail verifyçalıştırın, sonraki 60 dakika kod gerekmez. Bir API anahtarından asla istenmez. --dry-runbir değişikliğin göndereceği isteği gövdesiyle birlikte yazdırır ve göndermeden ya da onay istemeden0koduyla çıkar.- Bir liste tek bir sayfa okur:
--limit1 ile 100 arası bir değer alır ve verilmediğinde sunucu 25 gönderir;--cursorönceki sayfanınnextCursordeğerini alır.--allher sayfayı okur,--max <n>o kadar öğeden sonra durur,--ndjsonya da bir kanala yönlendirilen--allher satıra bir JSON nesnesi yazdırır.--jsoniledomains listvelist-addressestek bir{ items, hasMore, nextCursor }belgesi yazdırır. - Belirli alan adlarıyla ya da adreslerle sınırlı bir anahtar veya oturum yine de her alan adını ve adresi görür. Alan adı ekleyemez; diğer her değişiklik için alan adının tamamının tuttuğu alan adları arasında olması gerekir, aksi hâlde çağrı 422
capability_unsupportedile reddedilir. - Bir ret, durumunun koduyla çıkar: 403 için
4(örneğin plan daha fazla alan adına izin vermediğindedomain_allowance_reached), 404 için5, 409 için6(örneğindomain_already_addedya dadomain_claimed) ve 422 için7(örneğininvalid_tracking_hostya daworkspace_limit_reached). - Bir çalışma alanındaki son alan adı CLI'dan kaldırılamaz. Bu bir 409
last_domainhatasıdır, çünkü onu kaldırmak tüm posta kutusunu siler ve web uygulaması bunu önce onaylatır. Ayrılmış hesap adreslerini tutan bir alan adı 409domain_holds_reserved_addressesverir. domains createve iki silme işlemi bir ağ hatasından sonra asla yeniden denenmez. Bir 409domain_already_addedya da kaybolan bir yanıttan sonraki ikinci denemenizde bir 404, ilkinin işe yaradığı anlamına gelir.verify,update,create-addressveupdate-addresskendiliğinden yeniden denenir, çünkü birini iki kez göndermek aynı sonucu bırakır.