Taslaklar
`drafts.list`, `list_all`, `iterate`, `get`, `create`, `update` ve `delete`.
Her yöntem
page = client.drafts.list(query: "invoice", limit: 25)draft = client.drafts.get("draft-5f0c2a9e-8b1d-4e7a-a3c6-2d9f41b7e0c8")puts page.items.size, draft[:subject] created = client.drafts.create( to: ["[email protected]"], cc: [], bcc: [], subject: "Your September invoice", html: "<p>Draft body.</p>", from: "[email protected]", threadId: "CAHk7pQ2x9LmZ4-mail.example.com") updated = client.drafts.update(created[:id], subject: "Revised")client.drafts.delete(updated[:id])update taslağın kimliğini korur; bu yüzden yanıt verdiği değer her zaman geçirdiğiniz değerdir. Bilinmeyen bir kimlik yeni bir taslak değil, OpenEmail::NotFoundError olarak fırlatılan bir 404 verir.
Bir taslağın alanları API'deki adlarıyla anahtar kelime argümanlarıdır; bu yüzden bir taslağın yanıt verdiği konuşma dizisi threadId: olarak verilir. Tek bir Hash olarak da geçirilebilirler. Bir taslak Symbol anahtarlı bir Hash olarak döner; bu yüzden draft[:subject] konuyu okur. Her yazma işlemi yalnızca object ve id ile yanıt verir; taslağın tamamını get ile okuyun.
list, threads.list gibi sayfalar. API'nin pageToken değeri next_cursor olarak döner ve cursor: olarak geri verilir; list_all ve iterate onu sizin için izler. iterate her taslağı bir bloğa verir ya da blok olmadan bir Enumerator döndürür. limit: en fazla 100'e kadar istemedikçe bir sayfa 25 taslak içerir. query:, threads.list arama sözdizimini alır ve arama asla taslakların dışına çıkmaz. Bir satır yalnızca object ve id içerir; alıcılar, konu ve gövde için get çağırın.
Taslak listesi hasMore belirtmez; bu yüzden bir cursor döndüğünde has_more? her zaman true olur. Sunucu bir sayfa dolu olduğunda her seferinde bir cursor sunar; bu yüzden tesadüfen dolu olan son sayfanın ardından bir boş sayfa gelir.
Bir taslak DRAFT etiketli bir konuşma dizisi olarak saklanır; client.threads.list(folder: "draft") çağrısının aynı taslakları listelemesinin nedeni budur. threads.get sıradan bir konuşma dizisi kimliğini açsa da get, update ve delete ona 404 ile yanıt verir. delete bir taslağı kalıcı olarak kaldırır. Çöp Kutusu'na gitmez ve geri alınamaz.
Bir taslağı göndermek için kimliğini emails.send çağrısına draftId: olarak geçirin. İçeriği taslak, zarfı gönderim sağlar. Bir taslak template ya da translate ile birlikte kullanılamaz.
client.emails.send( from: "[email protected]", to: "[email protected]", draftId: "draft-5f0c2a9e-8b1d-4e7a-a3c6-2d9f41b7e0c8")Parametreler: drafts.create ve drafts.update
toArray<String>- Alıcı adresleri, `emails.send` çağrısının kabul ettiği Hash biçimlerinde değil, String'lerden oluşan bir Array olarak verilir, çünkü bu uç nokta Array'i sürücünün istediği virgülle ayrılmış listeye birleştirir. Bir String, `Ada Lovelace <[email protected]>` örneğinde olduğu gibi bir görünen ad taşıyabilir; ancak virgül içeren bir ad iki bozuk alıcıya bölünür. `emails.send` çağrısından farklı olarak gem burada tek bir String'i Array içine sarmaz; bu yüzden `["[email protected]"]` geçirin. Oluşturmada belirtilmeyen bir Array boş olarak kaydedilir. Güncellemede belirtilmeyen bir alan saklanan alıcılara dokunmaz, çünkü işleyici önce taslağı okur ve birleştirir.
ccArray<String>- `to` ile aynı biçimde Cc adresleri. Belirtilmezse oluşturmada boş kalır, güncellemede ise değişmez.
bccArray<String>- `to` ile aynı biçimde Bcc adresleri. Belirtilmezse oluşturmada boş kalır, güncellemede ise değişmez.
subjectString- Taslağın konusu; en fazla 998 karakter (RFC 5322 satır sınırı). Oluşturmada varsayılanı boş bir String'dir ve boş bir konu `(no subject)` olarak saklanır; bu yüzden bir taslağın her zaman bir konusu vardır.
htmlString- İşaretleme olarak taslak gövdesi; en fazla 1.000.000 karakter. Kazanan gövde budur. `html` ve `text` sürücünün tek ileti alanını besler; bu yüzden ikisini birden göndermek bunu saklar.
textString- Düz metin bir gövde; en fazla 1.000.000 karakter, yalnızca `html` yoksa kullanılır. Taslak iki parça değil tek bir gövde saklar; bu yüzden burada verilen metin, taslak okunduğunda dönüştürülmeden `html` üzerinde geri gelir.
fromString- Taslağa kaydedilecek gönderen adresi; görünen adla ya da adsız. Oluşturmada belirtilmezse taslağın göndereni olmaz. Güncellemede belirtilmezse saklanan taslaktan aktarılır. Sürücü iletinin tamamını kendisine verilenden yeniden oluşturur; bu yüzden bu alanı düşüren kısmi bir değişiklik seçilen göndereni sessizce değiştirirdi. Güncellemede boş bir String ya da nil onu temizler.
threadIdString- Taslağı mevcut bir konuşma dizisine bağlar; böylece bir yanıt olarak kaydedilir. `from` gibi, güncellemede belirtilmezse aktarılır, çünkü iletiyi onsuz yeniden oluşturmak yanıtı konuşma dizisinden koparırdı. Güncellemede boş bir String bağlantıyı koparır. Taslak yine de kendi kimliğiyle ayrı bir konuşma dizisi olarak saklanır; bu yüzden yanıt verdiği konuşma dizisinin içinde değil, taslaklarla birlikte listelenir.
Bir alanı korumak için onu belirtmeyin. nil geçirmek aynı şey değildir. Gem nil'i gönderir ve güncellemedeki from dışında her alan onu 422 invalid_parameter ile reddeder; o alanda nil göndereni temizler. İsteğe bağlı değerlerden oluşan bir Hash'i geçirmeden önce üzerinde compact çağırın. Gövde de katıdır. Bu sekiz alanın dışındaki bir alan da aynı şekilde reddedilir ve ekler için bir alan yoktur.
Yanıt: bir taslak (drafts.get)
objectString- Her zaman `draft`.
idString- Taslağın kimliği: `draft-` ve ardından bir UUID. Yazma işlemleri taslağın tamamıyla değil, yalnızca `object` ve `id` ile yanıt verir; bu yüzden gönderdiğiniz kimliği yeniden kullanmak yerine kimliği sonuçtan okuyun.
toArray<String>- Taslağın sakladığı hâliyle alıcı adresleri; çıplak, görünen ad atılmış olarak. Taslağın alıcısı yoksa nil değil, boş bir Array.
ccArray<String>- Saklandığı hâliyle Cc adresleri. Taslakta yoksa nil değil, boş bir Array.
bccArray<String>- Saklandığı hâliyle Bcc adresleri. Taslakta yoksa nil değil, boş bir Array.
subjectString- Saklanan konu, asla nil değil. Konusuz kaydedilmiş bir taslakta posta kutusunun sakladığı yer tutucu olan `(no subject)` okunur; bu yüzden boş bir String olup olmadığını denetlemek yerine bununla karşılaştırın.
htmlString- Saklanan gövde; taslağın gövdesi yoksa boş bir String. Yanıtta ayrı bir metin alanı yoktur; bu yüzden yalnızca `text` ile kaydedilmiş bir taslak burada döndürülür.
fromString or nil- Taslağın kaydedildiği adres; yalnızca çalışma alanı hâlâ o adresle gönderebiliyorsa bildirilir. Göndereni olmadan ya da o zamandan beri kaldırılmış bir adresle kaydedilmiş bir taslak için nil.
threadIdString or nil- Taslağın yanıt verdiği konuşma dizisi; yeni bir yazışma başlatan bir taslak için nil.
attachmentsArray<Hash>- Her kayıt yalnızca `filename` ve `contentType` içerir, çünkü taslak ekleri içerik olmadan ad ve tür olarak saklanır. Bir `update` bu listeyi boşaltır.