Belgelere geç
CLI

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 list ya da domains create komutundan gelen bir UUID olan alan adı id'sini alır. Onun yerine ana makine adı kabul edilmez, bu yüzden openemail domains get acme.com 404 verir ve 5 koduyla çıkar.
  • Bir adres komutu önce alan adı id'sini, sonra domains list-addresses ya da domains create-address komutundan gelen bir UUID olan adres id'sini alır.
  • domain ve address da ad alanı adı olarak çalışır. Alan adı fiilleri ls, show, new, edit ve rm gibi alışılmış takma adlara yanıt verir; addresses list de öyle. Bir alan adındaki adresler için olan create-address gibi beş fiilin ise hiç takma adı yoktur.
  • openemail <command> --help her 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 --json ekleyin.

Tüm komutlar

KomutNe 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 listBu 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 create ilk DNS kontrolünü çağrı sırasında yapar, bu yüzden records içindeki her kayıt zaten bir status taşır: found, missing ya da henüz kontrol edilmediyse null. Değerler alan adına özgü olduğundan her kaydı tam verildiği gibi yayımlayın.
  • domains verify hemen 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öylece sending günceldir.
  • Doğrulanmamış bir alan adında domains get, son kontrol 20 saniyeden eskiyse yeniden kontrol eder; bu yüzden get ile düzenli sorgulama da işe yarar ve yalnızca domains:read gerektirir, verify ise domains:write gerektirir.
  • 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.

BayrakNeyi değiştirir
--catch-all, --no-catch-allAçı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 tracking ya da storage bloğundaki record.name adıyla ve record.value değ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 pending görünür ve yeni posta varsayılan OpenEmail host'unu kullanmaya devam eder. Bir kontrol geçtiğinde active gö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 host failed görünür ve yeni posta varsayılan host'a döner.
  • Bir host'u --tracking-host null örneğindeki gibi null ile kaldırın. --tracking-host= gibi boş bir değer CLI'da bir kullanım hatasıdır ve 2 koduyla çıkar.
  • Yeni bir host için alan adının doğrulanmış olması ya da en azından _openemail-challenge TXT kaydının yayımlanmış olması gerekir. Aksi hâlde çağrı 409 domain_not_verified ile 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-part ile isteğe bağlı bir --label alı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-enabled adresin 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; --enabled kaldığı yerden devam ettirir. --label onu yeniden adlandırır, --label null adı kaldırır.
  • delete-address daha 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âlde canSend yalnı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.
  • --json ile, diğer listelerin yazdırdığı { items, hasMore, nextCursor } belgesi yerine, tek bir sayfa için { unrestricted, addresses, domains, hasMore, nextCursor }, --all ile de { unrestricted, addresses, domains } yazdırır. --all bir kanala yönlendirildiğinde ya da --ndjson ile 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:read olmadan alan adları ya da emails:send olmadan 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, domains ve unavailable içeren tek bir nesne yazdırır; unavailable okunamayan 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

Bir alan adı ekleyin ve kayıtlarını yayımlayın
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)"
Posta almaya başlayana kadar bekleyin, sonra gönderimi kontrol edin
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}'
catch-all'ı kapatın, bir adresi koruyun
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-all

invoices 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.

Bir izleme alan adı ayarlayın, sonra kaldırın
openemail domains update "$id" --tracking-host links.acme.com --json | jq '.tracking | {status, record, error}'openemail domains update "$id" --tracking-host null
Bir adresi kullanımdan kaldırın
address_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.

Bir betikten denetim
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

KapsamKomutlar
domains:readdomains list, get, list-addresses, get-address
domains:writedomains create, verify, update, delete, create-address, update-address, delete-address
emails:sendaddresses 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 delete ve domains delete-address onay ister. Hayır yanıtı 10 koduyla çıkar ve hiçbir şeyi değiştirmez. Gözetimsiz çalışırken ve --yes olmadan, hiçbir şey gönderilmeden 2 çı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. Önce openemail verify çalıştırın, sonraki 60 dakika kod gerekmez. Bir API anahtarından asla istenmez.
  • --dry-run bir değişikliğin göndereceği isteği gövdesiyle birlikte yazdırır ve göndermeden ya da onay istemeden 0 koduyla çıkar.
  • Bir liste tek bir sayfa okur: --limit 1 ile 100 arası bir değer alır ve verilmediğinde sunucu 25 gönderir; --cursor önceki sayfanın nextCursor değerini alır. --all her sayfayı okur, --max <n> o kadar öğeden sonra durur, --ndjson ya da bir kanala yönlendirilen --all her satıra bir JSON nesnesi yazdırır. --json ile domains list ve list-addresses tek 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_unsupported ile reddedilir.
  • Bir ret, durumunun koduyla çıkar: 403 için 4 (örneğin plan daha fazla alan adına izin vermediğinde domain_allowance_reached), 404 için 5, 409 için 6 (örneğin domain_already_added ya da domain_claimed) ve 422 için 7 (örneğin invalid_tracking_host ya da workspace_limit_reached).
  • Bir çalışma alanındaki son alan adı CLI'dan kaldırılamaz. Bu bir 409 last_domain hatası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ı 409 domain_holds_reserved_addresses verir.
  • domains create ve iki silme işlemi bir ağ hatasından sonra asla yeniden denenmez. Bir 409 domain_already_added ya da kaybolan bir yanıttan sonraki ikinci denemenizde bir 404, ilkinin işe yaradığı anlamına gelir. verify, update, create-address ve update-address kendiliğinden yeniden denenir, çünkü birini iki kez göndermek aynı sonucu bırakır.

Sırada nereye gitmeli

Gelen kutunuz,
kendi kurallarınızla.

İşletmeler, yapay zekâ, ajanlar ve kişisel e-posta için e-posta altyapısı. Ölçek, gizlilik ve denetim için kuruldu. E-postanın ilk günden sahip olması gereken her şey.

OpenEmail

İşletmeler, yapay zekâ, ajanlar ve kişisel e-posta için e-posta altyapısı. Ölçek, gizlilik ve denetim için kuruldu. E-postanın ilk günden sahip olması gereken her şey.

© 2026 OpenEmail. Tüm hakları saklıdır.