Belgelere geç
CLI

Anahtarlar, üyeler ve roller

API anahtarlarını yönetin ve ne yaptıklarını okuyun, üyeleri davet edin ve yönetin, roller yazın, kullandığınız kimlik bilgisini kontrol edin ve tek kullanımlık gelen kutuları oluşturun.

Genel bakış

Bu komutlar çalışma alanına kimin ve neyin ulaşabileceğine karar verir. openemail keys API anahtarlarını yönetir ve her birinin ne yaptığını okur, openemail members çalışma alanındaki kişileri ve davetlerini yönetir, openemail roles ise bir üyenin ya da anahtarın neler yapabileceğini tanımlar. openemail me çağrıyı yaptığınız anahtarı ya da oturumu açıklar, openemail languages de çevrilmiş bir gönderimin kabul ettiği dilleri listeler. Tek kullanımlık gelen kutuları hiç oturum gerektirmez: openemail temp birini kullanmanın gündelik yoludur, openemail temp-mail ise arkasındaki API'nin her çağrısıdır. openemail api, diğer komutların ulaşmadığı her uç noktaya ulaşır.

  • Bir anahtar komutu, keys list komutunun gösterdiği gibi oe_live_ sonrasındaki 24 onaltılık karakter olan anahtar id'sini alır. Bir üye komutu hesap id'sini, yani members list içindeki userId değerini alır, asla bir e-posta adresini almaz. Bir rol komutu roles list komutundan gelen bir role_ id'si alır, çünkü roller adla aranamaz.
  • Ad alanları key, member, role, language ve tempMail adlarına da yanıt verir. ls, show, new, edit ve rm gibi alışılmış fiil takma adları çalışır. Fiilleri add ve remove olan members içinde new ve create, add fiiline; rm, del ve delete de remove fiiline götürür.
  • 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 me getÇağrıyı yaptığınız API anahtarını ya da tarayıcı oturumunu açıklayın: kapsamları, onu sınırlayan rol, çalışma alanı ve hangi adreslerle gönderim yapabileceği. Kapsam gerektirmez
openemail me pingBir sağlık denetimi için kimlik bilgisinin doğrulandığını kontrol edin. Kapsam gerektirmez
openemail me rotateÇağrıyı yaptığınız API anahtarına bir kez gösterilen yeni bir gizli değer verin. Onay ister
openemail keys listÇalışma alanının API anahtarlarını en yeniden eskiye; durum, kapsamlar, rol, gönderim kapsamı ve son kullanımla listeleyin. Asla bir gizli değer göstermez
openemail keys get <id>Tek bir anahtarı gizli değeri olmadan okuyun
openemail keys create --name <value>Bir anahtar üretin ve gizli değerini bir kez, token içinde alın
openemail keys update <id>Bir anahtarı yeniden adlandırın, kapsamlarını ya da gönderim kapsamını değiştirin veya --no-enabled ve --enabled ile kapatıp açın
openemail keys delete <id>İptal edilmiş bir anahtarı geçmişini koruyarak listeden kaldırın. Onay ister
openemail keys rotate <id>Bir anahtara bir kez gösterilen yeni bir gizli değer verin ve eskisini hemen durdurun. Onay ister
openemail keys revoke <id>Bir anahtarı isteğe bağlı bir --reason ile kalıcı olarak iptal edin. Onay ister
openemail keys list-requests <id>Tek bir anahtarın istek günlüğünü okuyun: yöntem, yol, durum, hata kodu, süre, IP ve kullanıcı aracısı
openemail keys list-activity <id>Tek bir anahtara ne olduğunu okuyun: oluşturulma, değiştirilme, döndürülme, kapatılıp açılma, iptal, silinme ve reddedilen her çağrı
openemail keys list-workspace-requestsGörebildiğiniz her anahtarın ya da --key-ids ile adlandırılanların istek günlüğünü okuyun
openemail keys list-workspace-activityGörebildiğiniz her anahtara ya da --key-ids ile adlandırılanlara ne olduğunu okuyun
openemail roles listÇalışma alanının rollerini, hazır tanımlı olanlar önce, her birine sahip üye ve anahtar sayısıyla listeleyin
openemail roles get <id>Tek bir rolü izinleri ve canlı kullanım sayılarıyla okuyun
openemail roles create --name <value> --permissions <a,b>İsteğe bağlı bir --description ile özel bir rol oluşturun
openemail roles update <id>Bir rolü yeniden adlandırın, açıklamasını değiştirin ya da izin listesinin tamamını değiştirin
openemail roles delete <id>Bir rolü silin ve ona sahip olanları --reassign-to içindeki role taşıyın. Onay ister
openemail roles list-permissionsİzin sözlüğünü; her biri için bir etiket, bir grup ve bir anahtarın ona sahip olup olamayacağıyla listeleyin
openemail members listErişimi olan herkesi, sahibi önce olmak üzere, rolü, izinleri ve her birinin kullanabileceği adresler ve alan adlarıyla listeleyin
openemail members get <user-id>Tek bir üyeyi hesap id'sine göre okuyun
openemail members add --email <value> --role-id <value>Birini bir rolle ve --address-ids, --domain-ids ve --access aracılığıyla adreslerle ya da alan adlarının tamamıyla davet edin
openemail members update <user-id> --role-id <value>Bir üyeyi başka bir role taşıyın. Adres ve alan adı yetkileri olduğu gibi kalır
openemail members remove <user-id>Birini sahip olduğu tüm adres yetkileriyle birlikte çalışma alanından çıkarın. Onay ister
openemail members grant-address <user-id> --address-id <value>Bir üyeye tek bir adres verin ya da o adrese --access düzeyini değiştirin
openemail members revoke-address <user-id> <address-id>Bir üyeden tek bir adresi geri alın. Onay ister
openemail members list-invitationsHenüz kimsenin kabul etmediği davetleri, süresi dolmuş olanlar dahil listeleyin
openemail members revoke-invitation <invitation-id>Bir daveti geri çekin, böylece bağlantısı çalışmayı bırakır. Onay ister
openemail members resend-invitation <invitation-id>Bir daveti yeni bir bağlantı ve 14 gün daha süreyle yeniden gönderin
openemail languages listÇevrilmiş bir gönderimin kabul ettiği her dili, bir seçicinin göstermesi gereken sırayla listeleyin. Kapsam gerektirmez
openemail temp new [--name <local-part>] [--domain <domain>] [--ttl <minutes>]Tek kullanımlık bir gelen kutusu oluşturun ve yalnızca adresini yazdırın. Oturum gerektirmez
openemail temp listBu CLI'nin oluşturduğu tek kullanımlık gelen kutularını ağa başvurmadan listeleyin
openemail temp read [inbox] [message-id]Bir gelen kutusundaki postayı listeleyin ya da tek bir mesajı okunabilir metin olarak yazdırın
openemail temp watch [inbox] [--first]Her yeni mesajı geldiği anda yazdırın; her 3 saniyede bir kontrol eder
openemail temp delete [inbox] [--yes]Bir gelen kutusunu ve postasını şimdi silin ve token'ını unutun. Onay ister
openemail temp-mail list-domainsTek kullanımlık bir gelen kutusunun oluşturulabileceği alan adlarını listeleyin. Kimlik bilgisi gerektirmez
openemail temp-mail createTek kullanımlık bir gelen kutusu ve CLI'nin kaydettiği gelen kutusu token'ını oluşturun. Kimlik bilgisi gerektirmez
openemail temp-mail get <inbox-id>Bir gelen kutusunun süre sonunu, kalan uzatma hakkını ve mesaj sayısını okuyun
openemail temp-mail extend <inbox-id>Süre sonunu, gelen kutusunun oluşturulmasından sonraki 24 saat içinde kalmak üzere, bir saate kadar ileri alın
openemail temp-mail delete <inbox-id>Bir gelen kutusunu ve postasını şimdi yok edin. Onay ister
openemail temp-mail list-messages <inbox-id>Mesajlardan bir sayfayı en yeniden eskiye, her biri kısa bir düz metin parçasıyla listeleyin
openemail temp-mail get-message <inbox-id> <message-id>Tek bir mesajı saklanan gövdesiyle okuyun ve görüldü olarak işaretleyin
openemail temp-mail delete-message <inbox-id> <message-id>Tek bir mesajı gövdesi ve ekleriyle birlikte silin. Onay ister
openemail temp-mail list-attachments <inbox-id> <message-id>Bir mesajın eklerini baytları base64 olarak okuyun
openemail api <method> <path>Herhangi bir REST uç noktasını oturumunuz, onun doğrulama kodları ve onaylarıyla çağırın

Her bayrak kendi komutunun yardımındadır, örneğin openemail keys create --help, openemail members add --help ya da openemail temp new --help.

API anahtarları

Anahtarları okumak keys:read, her değişiklik ise keys:manage gerektirir. Bir tarayıcı oturumuna asla keys:write ya da keys:manage verilmez, bu yüzden anahtar oluşturmak, değiştirmek, döndürmek, iptal etmek ve silmek için keys:manage sahibi bir API anahtarı ya da web uygulaması (openemail open api-keys) gerekir. keys:read içeren bir tarayıcı oturumu anahtarları yalnızca çalışma alanı sahibi için okur; bir üyenin oturumu 403 owner_only ile reddedilir.

  • keys create, keys rotate ve me rotate anahtarın gizli değerini token içinde bir kez yazdırır; ardından CLI bunun bir daha asla gösterilmeyeceği konusunda uyarır. Her okuma bunun yerine maskedKey gösterir.
  • Bunlar verilmezse yeni bir anahtar yalnızca emails:send tutar ve onu oluşturan anahtarın rolünü, gönderim kapsamını ve süre sonunu alır. --domain-allowlist ve --address-allowlist hangi adreslerle gönderim yapabileceğini belirler; --expires-in-minutes 5 ile 5,256,000 arası, yani on yıla kadar bir değer alır.
  • Bir anahtar asla kendisinden daha geniş bir anahtar oluşturmaz ya da ona ulaşmaz. Kapsamlar, rol, süre sonu, mod ve gönderim kapsamı çağıran anahtarın sınırları içinde kalmalıdır, aksi hâlde çağrı 403 beyond_caller_authority ile reddedilir ve param neyin fazla geniş olduğunu adlandırır. Bazı alan adlarına ya da adreslere daraltılmış bir anahtar yalnızca kendi gönderim kapsamındaki anahtarları görür; diğerleri 404 verir.
  • keys update gönderdiğinizin yerine koyar: --scopes, --address-allowlist ve --domain-allowlist her biri yeni listenin tamamını alır; vermediğiniz bir bayrak olduğu gibi kalır. --no-enabled bir anahtarı kapatır, böylece onunla yapılan her çağrı inactive_api_key ile reddedilir; --enabled onu tam olarak eski hâline getirir. Bu, bir anahtarı geri alınabilir biçimde durdurmanın yoludur.
  • keys revoke kalıcıdır: anahtar bir daha asla açılamaz, döndürülemez ya da değiştirilemez. keys delete yalnızca iptal edilmiş bir anahtarı kaldırır, diğerleri 409 not_revoked ile reddedilir. Silinmiş bir anahtarın istek günlüğü ve etkinliği Silinmiş anahtar altında kalır.
  • keys rotate bir örtüşme penceresi sunmaz, bu yüzden eski gizli değer yenisi döndüğü anda çalışmayı bırakır. Anahtar kayıtlı profilinizin kullandığı anahtarsa CLI yeni gizli değeri o profile kaydeder, böylece çalışmaya devam eder. OPENEMAIL_API_KEY ya da --api-key ile verilen bir anahtar kaydedilemez, bu yüzden CLI size yeni token'ı eski anahtarın tutulduğu yerde saklamanızı söyler.

İstek günlüğü bir anahtarın yaptığı her çağrıyı kaydeder: yöntem, yol, durum, hata kodu, süre, IP ve kullanıcı aracısı; asla bir gövde ya da sorgu dizesi değil. Hiçbir şey budanmaz, bu yüzden bir anahtarın ilk çağrısına kadar geri gider; tarayıcı oturumuyla yapılan çağrılar bunda yer almaz. Etkinlik günlüğü bir anahtardaki her değişikliği ve anahtarı sunup reddedilen her çağrıyı auth_failed olarak kaydeder; her değişikliği kimin yaptığı actor içindedir.

  • list-requests ve list-activity tek bir anahtarı okur. list-workspace-requests ve list-workspace-activity görebildiğiniz her anahtarı ya da --key-ids ile adlandırılan en fazla 50 anahtarı, silinmiş anahtarlar dahil okur.
  • --since ve --until bir zaman aralığı tutar ve 2026-09-01T00:00:00Z gibi bir ISO 8601 zamanı alır. --failed-only 400 ya da daha yüksek durum koduyla yanıtlanan çağrıları tutar.

Kimlik bilginiz ve diller

Bir çağrı reddedildiğinde çalıştırılacak ilk komut openemail me get komutudur. Kapsam gerektirmez, bu yüzden geçerli her anahtar ya da oturum kendini açıklayabilir.

  • scopes, kimlik bilgisinin şu anda yapabildikleridir: oluşturulduğu kapsamların, altında verildiği rolce kısıtlanmış hâli; her istekte hesaplanır. grantedScopes oluşturulduğu kapsamlardır ve roleId rolü adlandırır. grantedScopes içinde olup scopes içinde olmayan bir kapsam rol tarafından kaldırılmıştır. Kapsama sahipmiş gibi görünen bir anahtarda 403 insufficient_scope hatasının olağan nedeni budur; çözüm başka bir anahtar üretmek değil, rolü değiştirmektir.
  • domainAllowlist ve addressAllowlist hangi adreslerle gönderim yapabileceğini söyler. İkisinin de null olması, çalışma alanının sahip olduğu her adres anlamına gelir.
  • Bir tarayıcı oturumunda oturumu açıklar: object değeri oauth_token olur, clientId bu CLI'nin bağlı uygulamasını adlandırır, expiresAt ise onayınızın ne zaman sona erdiğidir; hiç sona ermiyorsa null olur.
  • me ping, aynı kapsam ayrıntısıyla ama izin listeleri olmadan ok: true yanıtını verir; bu da bir sağlık denetimine uyar. İptal edilmiş, süresi dolmuş, kapatılmış ya da yanlış yazılmış bir anahtar 401 ve 3 çıkış koduyla başarısız olur.
  • me rotate, çağrıyı yaptığınız anahtara yeni bir gizli değer verir. Bir tarayıcı oturumunun asla sahip olmadığı keys:write gerektirir, bu yüzden bir API anahtarı ister. Anahtarla ilgili diğer her şey kalır, eski gizli değer hemen çalışmayı bırakır ve keys rotate ile olduğu gibi kayıtlı bir profil yenisini alır. Kaybolan bir yanıt anahtarı kimsenin görmediği bir gizli değerle bırakabilir; o durumda web uygulamasından yeni bir değer gerekir.
  • openemail whoami aynı yanıtı insanlar için biçimlendirilmiş olarak gösterir.

openemail languages list dil tablosunun tamamını tek bir yanıtta, yaklaşık iki yüz satır olarak yazdırır; her dilin kodu, İngilizce adı, kendi dilindeki adı, bayrağı ve sağdan sola yazılıp yazılmadığıyla. Kod, İngilizce ad ya da kendi dilindeki ad, çevrilmiş bir gönderimin hedefi olarak kullanılabilir. Oturum gerektirir ama kapsam gerektirmez. openemail ai languages aynı tabloyu bir --search bayrağıyla yazdırır; oturum yokken CLI ile birlikte gelen tabloyu yazdırır.

Üyeler ve roller

Bir üye asla birleştirilmeyen iki şeye sahiptir. Rolü neler yapabileceğini, adres ve alan adı yetkileri ise bunu hangi posta üzerinde yapabileceğini söyler; her yetkinin kendi erişimi vardır: member okur ve gönderir, viewer yalnızca okur. Bir gönderim ikisini de gerektirir, bu yüzden emails:send içeren bir rol ve bir adres üzerinde viewer yetkisi o adresten yine de gönderim yapamaz. Bütün bir alan adı, sonradan oluşturulanlar dahil üzerindeki her adresi kapsar.

  • members list, çalışma alanı sahibini isOwner olarak işaretli biçimde başa koyar, bu yüzden koltukları sayarken o satırı dışarıda bırakın. Sahip her izne sahiptir ve davet edilemez, değiştirilemez ya da kaldırılamaz; zaten çalışma alanında olan biri de yeniden davet edilemez: ikisi de 422 member_is_owner verir.
  • Adres yetkileri olan ama kendilerine hiç rol verilmemiş kişiler implied: true ile döner ve rolleri yetkilerinden çıkarılır. members update onlara gerçek bir rol verir.
  • members add, zaten hesabı olan birine bile bir davet gönderir. Kabul edene kadar hiçbir şey verilmez; kabul ettiğinde de tam olarak davetin taşıdığı rol, adresler ve alan adları verilir. Aynı adresi on dakika içinde yeniden davet etmek 409 invitation_too_soon verir; sonrasında ikinci bir davet göndermek yerine bekleyen daveti yeniler.
  • resend-invitation 14 gün daha geçerli yeni bir bağlantı gönderir ve eskisini devre dışı bırakır; bu da süresi dolmuş bir daveti yeniler. revoke-invitation bir daveti geri çeker; zaten kabul edilmiş bir davet 409 invitation_accepted verir, bu yüzden bunun yerine üyeyi kaldırın.
  • members update rolü değiştirir, başka hiçbir şeyi değil. grant-address tek bir adres verir ya da ona erişimi değiştirir, bu yüzden onu başka bir --access ile yeniden çalıştırmak ikinci bir yetki eklemek yerine yetkiyi değiştirir. revoke-address tek bir adresi geri alır ve diğerlerini bırakır. Rolü çıkarımla belirlenen bir üyenin son yetkisini geri almak onu çalışma alanından çıkarır.
  • members remove birinin çalışma alanına erişimini, üyeliğini ve tüm yetkilerini sonlandırır ve kaç adres yetkisinin gittiğini addressesRevoked içinde bildirir. Hesabına ve gönderdiği postaya dokunulmaz.

Bir rol, altında verilen API anahtarları için de bir tavandır. Bir anahtarın yapabildikleri, kendi kapsamlarının rolünün izinleriyle kısıtlanmış hâlidir ve her istekte hesaplanır.

  • roles list önce hazır tanımlı rolleri Owner, Admin, Member, Viewer, Developer ve Billing sırasıyla, ardından özel rolleri ada göre gösterir. Bir çalışma alanında en fazla 24 özel rol olabilir; bunun ötesinde roles create 422 role_limit_reached verir.
  • Bir rol, izinlerinin gerektirdiği izinleri de saklar; bu yüzden templates:write ayrıca templates:read saklar, roles:write de roles:read ve members:read getirir. Listeyi varsaymak yerine yanıttan okuyun.
  • roles update --permissions listenin tamamının yerini alır, bu yüzden rolü okuyun, listeyi değiştirin ve tamamını gönderin. --description null notu temizler. Bir değişiklik, rolü tutan her üyenin ve anahtarın bir sonraki çağrısında geçerli olur.
  • Owner dışındaki her rol, hazır tanımlı olanlar dahil, yeniden adlandırılabilir, yeniden yazılabilir ve silinebilir; silinen hazır tanımlı bir rol geri gelmez. Sahip rolü bir düzenlemeye 409 role_immutable, bir silmeye de 409 role_undeletable ile yanıt verir.
  • Herhangi bir üye, API anahtarı ya da bekleyen davet bir rolü tuttuğu sürece roles delete, onları devralacak rolle birlikte --reassign-to ister, aksi hâlde 409 role_in_use ile reddedilir. İptal edilmiş anahtarlar hâlâ rollerini gösterir, bu yüzden apiKeys sayısı 0 olan bir rol yine de bunu gerektirebilir. Yanıt reassigned kişileri ve keysReassigned anahtarları bildirir.
  • roles list-permissions sözlüğün tamamını her biri için bir etiket ve bir grupla listeler. billing:write ve workspace:manage gibi birkaçı scope: false ile döner: bir rol bunlara sahip olabilir, ancak hiçbir anahtar olamaz.

roles:write tutan bir anahtar kendisini sınırlayan rolü düzenleyip bir sonraki çağrısında kendini genişletebilir, bu yüzden bu kapsamı yalnızca okuması gereken anahtarlara vermeyin. Bir tarayıcı oturumunda members:write ve roles:write yalnızca onay bazı alan adlarını ya da adresleri değil tüm çalışma alanını kapsadığında verilir.

Tek kullanımlık gelen kutuları

Tek kullanımlık bir gelen kutusu hesap ya da oturum gerektirmez. oe_inbox_ ile başlayan ve gelen kutusu oluşturulduğunda bir kez dönen kendi gelen kutusu token'ıyla erişilir. Gündelik kullanım için openemail temp, temp komutunun göstermediği bir alan ya da adım gerektiğinde, örneğin kalan uzatma hakkı, bir uzatma ya da bir ekin baytları için openemail temp-mail kullanın.

  • İkisi de token'ı yalnızca sizin okuyabildiğiniz ~/.openemail/temp-mail.json içinde tutar. temp new ve temp-mail create onu kaydeder, temp list iki yoldan biriyle oluşturulan gelen kutularını gösterir, iki silme komutu da onu unutur. Kayıtlı bir gelen kutusu, bir komutun id'sini istediği her yerde adresiyle belirtilebilir.
  • Bu CLI'nin oluşturmadığı bir gelen kutusu için token'ı --inbox-token ile verin. Kayıtlı ya da verilmiş bir token yoksa komut hiçbir şey gönderilmeden 3 çıkış koduyla durur.
  • İki oluşturma komutu bayraklarını farklı adlandırır: temp new --name, --domain ve --ttl alır; temp-mail create ise --local-part, --domain ve --ttl-minutes alır. Bir local part, harf ya da rakamla başlayıp biten 3 ile 32 arası harf, rakam, nokta, tire ya da alt çizgiden oluşur; postmaster gibi adlar reddedilir. Kiralama süresi 1 ile 1440 dakika arasıdır, varsayılan 60'tır.
  • Her IP adresi saatte 6 ve günde 30 gelen kutusu oluşturabilir; bir sonraki 429 too_many_inboxes ve 8 çıkış kodu verir. Zaten sahip olduğunuz bir gelen kutusunu uzatmak sayılmaz, bu yüzden o sınırın yanıtı temp-mail extend komutudur.
  • temp-mail extend en fazla bir saat ekler; bu süre gelen kutusunun oluşturulmasından sonraki 24 saati asla aşmaz ve en fazla 23 kez yapılabilir. Yanıttan extensionsLeft değerini okuyun. 0 olduğunda kalıcı olarak 409 extension_limit verir.
  • temp-mail list-messages sayfa başına 1 ile 50 arası, varsayılan olarak 50 mesaj okur; her biri çoğu zaman tek kullanımlık bir kod içeren, en fazla 400 karakterlik düz metin bir snippet taşır. Bir sayfanın ötesindeki hiçbir şey atılmaz ve --all her sayfayı dolaşır.
  • Bir mesajı temp read, temp-mail get-message ya da temp-mail list-attachments ile okumak onu görüldü olarak işaretler. 2 MB'ı aşan bir gövde kesilir ve bunu truncated söyler; 8 MB'ı aşan bir ek hiç saklanmamıştır, bu yüzden content değeri null olur.
  • Bir gelen kutusunu silmek postasını hemen siler, ancak adres kiralamanın biteceği tarihten 7 gün sonrasına kadar ayrılmış kalır; o zamandan önce onu yeniden istemek 409 address_taken verir.

Tek kullanımlık bir gelen kutusundaki posta, herkesin adlandırabileceği bir adrese yabancılardan gelir. Göndereni asla doğrulanmaz ve içindeki hiçbir şey taranmaz, bu yüzden bağlantılarına, HTML'ine ve eklerine dikkatle yaklaşın.

Herhangi bir uç nokta ve security ad alanı

openemail api <method> <path>, diğer her komutla aynı taşıma üzerinden tek bir istek gönderir; bu yüzden profiliniz ya da anahtarınız, token yenileme, doğrulama kodları ve onaylar geçerli olur. Tek başına bir yol bir GET isteğidir ve bir JSON yanıtı biçimlendirilmiş olarak yazdırılır. me get komutunun arkasındaki çağrı openemail api /keys/self çağrısıdır.

  • -d, --data gövdeyi satır içi JSON olarak, @path ile bir dosyadan ya da - ile stdin'den alır. -q, --query ve -H, --header key=value alır ve tekrarlanabilir; -o, --out yanıtı geldiği gibi bir dosyaya kaydeder.
  • Bir DELETE ve bir kaynak komutunun onaylatacağı her çağrı, örneğin bir anahtarı iptal etmek ya da döndürmek, önce onay ister ve gözetimsiz çalışırken --yes gerektirir.
  • Başarısız bir istek API hatasını yazdırır ve uygun kodla çıkar.

security ad alanı openemail --help içinde listelenmez, çünkü onu openemail verify yönetir. step-up-status, begin-step-up ve verify-step-up fiilleri verify komutunun yaptığı çağrılardır: verify --status durumu okur, verify ise bir kod ister, onu sizden alır ve kontrol eder. Bunlar bir tarayıcı oturumu için vardır. Bir API anahtarıyla her biri 400 step_up_not_applicable ile reddedilir ve openemail verify bir anahtarın asla kod gerektirmediğini söyler.

Örnekler

Bir betik için anahtar üretin ve onunla oturum açın
openemail keys create --name 'Billing sender' --scopes emails:send \  --domain-allowlist billing.acme.com --expires-in-minutes 129600 --json \  | jq -r .token | openemail login --with-token --profile billingopenemail whoami --profile billing

Bunu keys:manage tutan bir API anahtarıyla, örneğin OPENEMAIL_API_KEY üzerinden çalıştırın. Gizli değer yanıttan doğrudan yeni bir profile gider, bu yüzden asla ekrana ya da bir dosyaya düşmez. Anahtar yalnızca billing.acme.com üzerinden gönderim yapabilir ve 90 gün sonra sona erer.

Anahtarları ve başarısız çağrılarını denetleyin
openemail keys list --all | jq -r 'select(.status != "active") | [.name, .status, .lastUsedAt] | @tsv'openemail keys list-workspace-requests --failed-only --since 2026-09-26T00:00:00Z --all \  | jq -r '[.createdAt, .keyName, .status, .errorCode, .method, .path] | @tsv'
Bir anahtarı kullanımdan kaldırın
id=4c1b257a66287fd113bd89d0openemail keys update "$id" --no-enabledopenemail keys list-activity "$id" --since 2026-09-27T00:00:00Z --all | jq -r 'select(.type == "auth_failed") | .createdAt'openemail keys revoke "$id" --reason 'Contractor offboarded' --yesopenemail keys delete "$id" --yes

Önce anahtarı kapatmak --enabled ile geri alınabilir. Onu hâlâ sunan her çağrı reddedilir ve etkinliğinde auth_failed olarak görünür; bu da size ona hâlâ neyin bağlı olduğunu söyler. İptal geri alınamaz ve yalnızca iptal edilmiş bir anahtar silinebilir.

Bir rol oluşturun ve birini onunla davet edin
openemail roles list-permissions --json | jq -r '.[] | [.group, .id, .label] | @tsv'role=$(openemail roles create --name Support --permissions threads:write,emails:send,templates:read \  --description 'Answers help@ and nothing else.' --json | jq -r .id)openemail members add --email [email protected] --role-id "$role" \  --domain-ids 93542ff8-2baa-4f2f-841d-5ceaa074ab0d --access memberopenemail members list-invitations

Rol, adlandırdığı izinler bunları gerektirdiği için threads:read ve emails:read da tutarak döner. Sam rolü ve alan adının tamamını ancak daveti kabul ettiğinde alır. Bir tarayıcı oturumuyla members add önce bir doğrulama kodu ister.

Bir ekip arkadaşını taşıyın, sonra eski rolünü silin
old=role_8b1f4c2e9a7d3b60e5f1a2c4new=role_2c7e9a1f4b8d3e60c5a7f1b9user=$(openemail members list --all | jq -r 'select(.email == "[email protected]") | .userId')openemail members update "$user" --role-id "$new"openemail roles get "$old" --json | jq '{name, members, apiKeys}'openemail roles delete "$old" --reassign-to "$new" --dry-runopenemail roles delete "$old" --reassign-to "$new" --yes

members ve apiKeys siz istediğinizde sayılır, bu yüzden silmenin neyi taşıyacağını gösterirler. Deneme çalıştırması, sorgusunda reassignTo bulunan DELETE isteğini göndermeden yazdırır. Bir tarayıcı oturumuyla güncelleme ve silme her biri bir doğrulama kodu ister, bu yüzden bunu bir betik yapıyorsa önce openemail verify çalıştırın.

Teslimi tek kullanımlık bir gelen kutusuyla kontrol edin
address=$(openemail temp new --ttl 15)openemail send --from [email protected] --to "$address" --subject 'Delivery check' --text 'Your code is 482913' --yesopenemail temp watch "$address" --first --json | jq -r .snippet | grep -oE '[0-9]{6}'openemail temp delete "$address" --yes

temp new yalnızca adresi yazdırır, bu yüzden bir kabuk değişkenine sığar; temp watch --first ilk mesajda durur. Bir kayıt formunun onay kodunu da aynı şekilde yakalamak için openemail send yerine formu bu adrese yönlendirin.

Kapsamlar, onaylar ve hatalar

KapsamKomutlar
keys:readkeys list, get, list-requests, list-activity, list-workspace-requests, list-workspace-activity
keys:managekeys create, update, delete, rotate, revoke
keys:writeme rotate
roles:readroles list, get, list-permissions
roles:writeroles create, update, delete
members:readmembers list, get, list-invitations
members:writemembers add, update, remove, grant-address, revoke-address, revoke-invitation, resend-invitation
Yok, herhangi bir anahtar ya da oturumlame get, me ping, languages list
Yok, oturum da gerekmeztemp, temp-mail list-domains ve create. Diğer temp-mail komutları gelen kutusu token'ını alır
  • 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.
  • Bunlar onay ister: keys delete, rotate ve revoke, me rotate, roles delete, members remove, revoke-address ve revoke-invitation, temp delete ile temp-mail delete ve delete-message. 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 roles update ve roles delete ile members add, update, remove, grant-address ve revoke-address, bu oturum son 60 dakika içinde bir kod doğrulamadıysa ayrıca bir doğrulama kodu ister. --yes bunu asla atlamaz; gözetimsiz çalışırken kodu kimse yazamaz, bu yüzden komut 4 çıkış koduyla durur. Önce openemail verify çalıştırın. 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; 1 ile 50 arası alıp 50 gönderen temp-mail list-messages bunun dışındadır. --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 bir liste tek bir { items, hasMore, nextCursor } belgesi yazdırır.
  • roles list-permissions, languages list, temp-mail list-domains ve temp-mail list-attachments her şeyi tek seferde, sayfasız düz bir dizi olarak döndürür.
  • Bir ret, durumunun koduyla çıkar: 401 için 3 (örneğin iptal edilmiş bir anahtar), 403 için 4 (örneğin beyond_caller_authority ya da owner_only), 404 için 5, 409 için 6 (örneğin not_revoked, role_in_use ya da invitation_too_soon), 400 ya da 422 için 7 (örneğin member_is_owner ya da role_limit_reached) ve 429 için 8 (örneğin too_many_inboxes).
  • Bir şeyi iki kez yapacak bir değişiklik, bir ağ hatasından sonra asla yeniden denenmez: keys create ve rotate, me rotate, roles create ve delete, members add, remove, revoke-address ve resend-invitation ile temp-mail create, extend, delete ve delete-message. Birini yeniden çalıştırmadan önce kontrol edin. Okumalar ve keys update, keys revoke, roles update, members update ve grant-address gibi iki kez aynı sonucu veren değişiklikler kendiliğinden yeniden denenir.

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.