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 listkomutunun gösterdiği gibioe_live_sonrasındaki 24 onaltılık karakter olan anahtar id'sini alır. Bir üye komutu hesap id'sini, yanimembers listiçindekiuserIddeğerini alır, asla bir e-posta adresini almaz. Bir rol komuturoles listkomutundan gelen birrole_id'si alır, çünkü roller adla aranamaz. - Ad alanları
key,member,role,languagevetempMailadlarına da yanıt verir.ls,show,new,editvermgibi alışılmış fiil takma adları çalışır. Fiilleriaddveremoveolanmembersiçindenewvecreate,addfiiline;rm,delvedeletederemovefiiline götürür. 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 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 ping | Bir 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-requests | Görebildiğiniz her anahtarın ya da --key-ids ile adlandırılanların istek günlüğünü okuyun |
| openemail keys list-workspace-activity | Gö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 list | Eriş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-invitations | Henü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 list | Bu 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-domains | Tek kullanımlık bir gelen kutusunun oluşturulabileceği alan adlarını listeleyin. Kimlik bilgisi gerektirmez |
| openemail temp-mail create | Tek 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 rotateveme rotateanahtarın gizli değerinitokeniçinde bir kez yazdırır; ardından CLI bunun bir daha asla gösterilmeyeceği konusunda uyarır. Her okuma bunun yerinemaskedKeygösterir.- Bunlar verilmezse yeni bir anahtar yalnızca
emails:sendtutar ve onu oluşturan anahtarın rolünü, gönderim kapsamını ve süre sonunu alır.--domain-allowlistve--address-allowlisthangi adreslerle gönderim yapabileceğini belirler;--expires-in-minutes5 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_authorityile reddedilir veparamneyin 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 updategönderdiğinizin yerine koyar:--scopes,--address-allowlistve--domain-allowlisther biri yeni listenin tamamını alır; vermediğiniz bir bayrak olduğu gibi kalır.--no-enabledbir anahtarı kapatır, böylece onunla yapılan her çağrıinactive_api_keyile reddedilir;--enabledonu tam olarak eski hâline getirir. Bu, bir anahtarı geri alınabilir biçimde durdurmanın yoludur.keys revokekalıcıdır: anahtar bir daha asla açılamaz, döndürülemez ya da değiştirilemez.keys deleteyalnızca iptal edilmiş bir anahtarı kaldırır, diğerleri 409not_revokedile reddedilir. Silinmiş bir anahtarın istek günlüğü ve etkinliği Silinmiş anahtar altında kalır.keys rotatebir ö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_KEYya da--api-keyile 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-requestsvelist-activitytek bir anahtarı okur.list-workspace-requestsvelist-workspace-activitygörebildiğiniz her anahtarı ya da--key-idsile adlandırılan en fazla 50 anahtarı, silinmiş anahtarlar dahil okur.--sinceve--untilbir zaman aralığı tutar ve2026-09-01T00:00:00Zgibi bir ISO 8601 zamanı alır.--failed-only400 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.grantedScopesoluşturulduğu kapsamlardır veroleIdrolü adlandırır.grantedScopesiçinde olupscopesiçinde olmayan bir kapsam rol tarafından kaldırılmıştır. Kapsama sahipmiş gibi görünen bir anahtarda 403insufficient_scopehatasının olağan nedeni budur; çözüm başka bir anahtar üretmek değil, rolü değiştirmektir.domainAllowlistveaddressAllowlisthangi 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:
objectdeğerioauth_tokenolur,clientIdbu CLI'nin bağlı uygulamasını adlandırır,expiresAtise 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 olmadanok: trueyanı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 ve3çı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:writegerektirir, 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 vekeys rotateile 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 whoamiaynı 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ı sahibiniisOwnerolarak 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 422member_is_ownerverir.- Adres yetkileri olan ama kendilerine hiç rol verilmemiş kişiler
implied: trueile döner ve rolleri yetkilerinden çıkarılır.members updateonlara 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 409invitation_too_soonverir; sonrasında ikinci bir davet göndermek yerine bekleyen daveti yeniler.resend-invitation14 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-invitationbir daveti geri çeker; zaten kabul edilmiş bir davet 409invitation_acceptedverir, bu yüzden bunun yerine üyeyi kaldırın.members updaterolü değiştirir, başka hiçbir şeyi değil.grant-addresstek bir adres verir ya da ona erişimi değiştirir, bu yüzden onu başka bir--accessile yeniden çalıştırmak ikinci bir yetki eklemek yerine yetkiyi değiştirir.revoke-addresstek 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 removebirinin çalışma alanına erişimini, üyeliğini ve tüm yetkilerini sonlandırır ve kaç adres yetkisinin gittiğiniaddressesRevokediç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 ötesinderoles create422role_limit_reachedverir.- Bir rol, izinlerinin gerektirdiği izinleri de saklar; bu yüzden
templates:writeayrıcatemplates:readsaklar,roles:writederoles:readvemembers:readgetirir. Listeyi varsaymak yerine yanıttan okuyun. roles update --permissionslistenin tamamının yerini alır, bu yüzden rolü okuyun, listeyi değiştirin ve tamamını gönderin.--description nullnotu 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 409role_undeletableile 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-toister, aksi hâlde 409role_in_useile reddedilir. İptal edilmiş anahtarlar hâlâ rollerini gösterir, bu yüzdenapiKeyssayısı 0 olan bir rol yine de bunu gerektirebilir. Yanıtreassignedkişileri vekeysReassignedanahtarları bildirir. roles list-permissionssözlüğün tamamını her biri için bir etiket ve bir grupla listeler.billing:writeveworkspace:managegibi birkaçıscope: falseile 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.jsoniçinde tutar.temp newvetemp-mail createonu kaydeder,temp listiki 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-tokenile verin. Kayıtlı ya da verilmiş bir token yoksa komut hiçbir şey gönderilmeden3çıkış koduyla durur. - İki oluşturma komutu bayraklarını farklı adlandırır:
temp new--name,--domainve--ttlalır;temp-mail createise--local-part,--domainve--ttl-minutesalı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;postmastergibi 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_inboxesve8çı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 extendkomutudur. temp-mail extenden 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ıttanextensionsLeftdeğerini okuyun. 0 olduğunda kalıcı olarak 409extension_limitverir.temp-mail list-messagessayfa 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 birsnippettaşır. Bir sayfanın ötesindeki hiçbir şey atılmaz ve--allher sayfayı dolaşır.- Bir mesajı
temp read,temp-mail get-messageya datemp-mail list-attachmentsile okumak onu görüldü olarak işaretler. 2 MB'ı aşan bir gövde kesilir ve bunutruncatedsöyler; 8 MB'ı aşan bir ek hiç saklanmamıştır, bu yüzdencontentdeğ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_takenverir.
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,--datagövdeyi satır içi JSON olarak,@pathile bir dosyadan ya da-ile stdin'den alır.-q,--queryve-H,--headerkey=valuealır ve tekrarlanabilir;-o,--outyanıtı geldiği gibi bir dosyaya kaydeder.- Bir
DELETEve 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--yesgerektirir. - 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
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 billingBunu 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.
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'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.
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-invitationsRol, 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.
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" --yesmembers 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.
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" --yestemp 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
| Kapsam | Komutlar |
|---|---|
| keys:read | keys list, get, list-requests, list-activity, list-workspace-requests, list-workspace-activity |
| keys:manage | keys create, update, delete, rotate, revoke |
| keys:write | me rotate |
| roles:read | roles list, get, list-permissions |
| roles:write | roles create, update, delete |
| members:read | members list, get, list-invitations |
| members:write | members add, update, remove, grant-address, revoke-address, revoke-invitation, resend-invitation |
| Yok, herhangi bir anahtar ya da oturumla | me get, me ping, languages list |
| Yok, oturum da gerekmez | temp, 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,rotateverevoke,me rotate,roles delete,members remove,revoke-addressverevoke-invitation,temp deleteiletemp-mail deletevedelete-message. 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
roles updateveroles deleteilemembers add,update,remove,grant-addressverevoke-address, bu oturum son 60 dakika içinde bir kod doğrulamadıysa ayrıca bir doğrulama kodu ister.--yesbunu asla atlamaz; gözetimsiz çalışırken kodu kimse yazamaz, bu yüzden komut4çıkış koduyla durur. Önceopenemail verifyçalıştırın. 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; 1 ile 50 arası alıp 50 gönderentemp-mail list-messagesbunun dışındadır.--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.--jsonile bir liste tek bir{ items, hasMore, nextCursor }belgesi yazdırır. roles list-permissions,languages list,temp-mail list-domainsvetemp-mail list-attachmentsher ş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çin4(örneğinbeyond_caller_authorityya daowner_only), 404 için5, 409 için6(örneğinnot_revoked,role_in_useya dainvitation_too_soon), 400 ya da 422 için7(örneğinmember_is_ownerya darole_limit_reached) ve 429 için8(örneğintoo_many_inboxes). - Bir şeyi iki kez yapacak bir değişiklik, bir ağ hatasından sonra asla yeniden denenmez:
keys createverotate,me rotate,roles createvedelete,members add,remove,revoke-addressveresend-invitationiletemp-mail create,extend,deletevedelete-message. Birini yeniden çalıştırmadan önce kontrol edin. Okumalar vekeys update,keys revoke,roles update,members updatevegrant-addressgibi iki kez aynı sonucu veren değişiklikler kendiliğinden yeniden denenir.