Zur Dokumentation springen
Ruby

Entwürfe

`drafts.list`, `list_all`, `iterate`, `get`, `create`, `update` und `delete`.

Jede Methode

drafts.rb
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 behält die id des Entwurfs bei, der zurückgegebene Wert ist daher immer der übergebene. Eine unbekannte id ergibt einen 404, ausgelöst als OpenEmail::NotFoundError, und keinen neuen Entwurf.

Die Felder eines Entwurfs sind Keyword-Argumente unter den Namen der API, der Thread, auf den ein Entwurf antwortet, ist also threadId:. Sie können auch als einzelner Hash übergeben werden. Ein Entwurf kommt als Hash mit Symbol-Schlüsseln zurück, draft[:subject] liest also den Betreff. Jeder Schreibvorgang antwortet nur mit object und id. Lesen Sie den ganzen Entwurf daher mit get.

list blättert wie threads.list. Das pageToken der API kommt als next_cursor zurück und geht als cursor: hinein, und list_all und iterate folgen ihm für Sie. iterate übergibt jeden Entwurf an einen Block oder gibt ohne Block einen Enumerator zurück. Eine Seite enthält 25 Entwürfe, sofern limit: nicht bis zu 100 anfordert. query: nimmt die Suchsyntax von threads.list entgegen, und die Suche verlässt nie die Entwürfe. Eine Zeile besteht nur aus object und id. Rufen Sie für Empfänger, Betreff und Body daher get auf.

Die Entwurfsliste gibt kein hasMore an, has_more? ist daher true, sobald ein Cursor zurückkam. Der Server bietet einen an, wann immer eine Seite voll ist. Auf eine letzte Seite, die zufällig voll ist, folgt daher eine leere Seite.

Ein Entwurf wird als Thread mit dem Label DRAFT gespeichert, deshalb listet client.threads.list(folder: "draft") dieselben Entwürfe. get, update und delete beantworten eine gewöhnliche Thread-id mit einem 404, auch wenn threads.get sie öffnet. delete entfernt einen Entwurf endgültig. Er wandert nicht in den Papierkorb, und es gibt kein Rückgängig.

Um einen Entwurf zu senden, übergeben Sie seine id als draftId: an emails.send. Der Entwurf liefert den Inhalt, der Versand den Umschlag. Ein Entwurf kann nicht mit template oder translate kombiniert werden.

send_draft.rb
client.emails.send(  from: "[email protected]",  to: "[email protected]",  draftId: "draft-5f0c2a9e-8b1d-4e7a-a3c6-2d9f41b7e0c8")

Parameter: drafts.create und drafts.update

toArray<String>
Empfängeradressen als Array von Strings, nicht in den Hash-Formen, die `emails.send` akzeptiert, denn dieser Endpunkt fügt das Array zu der kommaseparierten Liste zusammen, die der Treiber erwartet. Ein String darf einen Anzeigenamen tragen, wie in `Ada Lovelace <[email protected]>`, aber ein Name mit einem Komma zerfällt in zwei kaputte Empfänger. Anders als bei `emails.send` verpackt das Gem hier keinen einzelnen String in ein Array, übergeben Sie also `["[email protected]"]`. Bei create wird ein weggelassenes Array leer gespeichert. Bei update lässt ein weggelassenes Feld die gespeicherten Empfänger unverändert, da der Handler den Entwurf zuerst liest und zusammenführt.
ccArray<String>
Cc-Adressen, in derselben Form wie `to`. Bei create leer, wenn weggelassen, und bei update unverändert, wenn weggelassen.
bccArray<String>
Bcc-Adressen, in derselben Form wie `to`. Bei create leer, wenn weggelassen, und bei update unverändert, wenn weggelassen.
subjectString
Der Betreff des Entwurfs, höchstens 998 Zeichen, das Zeilenlimit von RFC 5322. Bei create ist der Standard ein leerer String, und ein leerer Betreff wird als `(no subject)` gespeichert, ein Entwurf hat daher immer einen.
htmlString
Der Entwurfstext als Markup, höchstens 1.000.000 Zeichen. Dieser Text setzt sich durch. `html` und `text` speisen dasselbe einzelne Nachrichtenfeld des Treibers, werden beide gesendet, wird dieses gespeichert.
textString
Ein Nur-Text-Body, höchstens 1.000.000 Zeichen, der nur verwendet wird, wenn `html` fehlt. Der Entwurf speichert einen Body statt zweier Teile, hier übergebener Text kommt daher beim Lesen des Entwurfs unkonvertiert auf `html` zurück.
fromString
Die Absenderadresse, die am Entwurf gespeichert wird, mit oder ohne Anzeigenamen. Bei create weggelassen, hat der Entwurf keinen Absender. Bei update wird sie aus dem gespeicherten Entwurf übernommen, wenn sie weggelassen wird. Der Treiber baut die gesamte Nachricht aus dem neu auf, was ihm übergeben wird, ein Teil-Patch, der sie fallen ließe, würde den gewählten Absender stillschweigend ändern. Ein leerer String oder nil bei update löscht sie.
threadIdString
Hängt den Entwurf an einen bestehenden Thread an, sodass er als Antwort gespeichert wird. Wie `from` wird der Wert bei update übernommen, wenn er weggelassen wird, denn die Nachricht ohne ihn neu aufzubauen würde die Antwort von ihrem Thread lösen. Ein leerer String bei update löst sie. Der Entwurf wird trotzdem als eigener Thread unter seiner eigenen id gespeichert und erscheint daher bei den Entwürfen und nicht im Thread, auf den er antwortet.

Lassen Sie ein Feld weg, um es zu behalten. nil zu übergeben ist nicht dasselbe. Das Gem sendet es, und jedes Feld lehnt es mit einem 422 invalid_parameter ab, außer from bei update, wo nil den Absender löscht. Rufen Sie compact auf einem Hash mit optionalen Werten auf, bevor Sie ihn übergeben. Auch der Body ist strikt. Ein Feld außerhalb dieser acht wird ebenso abgelehnt, und es gibt kein Feld für Anhänge.

Antwort: ein Entwurf (drafts.get)

objectString
Immer `draft`.
idString
Die id des Entwurfs, `draft-` gefolgt von einer UUID. Schreibvorgänge antworten nur mit `object` und `id` statt mit einem vollständigen Entwurf. Lesen Sie die id daher aus dem Ergebnis, statt die gesendete wiederzuverwenden.
toArray<String>
Die Empfängeradressen, wie der Entwurf sie gespeichert hat, bloß und ohne Anzeigenamen. Ein leeres Array, nie nil, wenn der Entwurf keine hat.
ccArray<String>
Cc-Adressen wie gespeichert. Ein leeres Array, nie nil, wenn der Entwurf keine hat.
bccArray<String>
Bcc-Adressen wie gespeichert. Ein leeres Array, nie nil, wenn der Entwurf keine hat.
subjectString
Der gespeicherte Betreff, nie nil. Ein ohne Betreff gespeicherter Entwurf zeigt `(no subject)`, den Platzhalter, den das Postfach speichert. Vergleichen Sie also damit, statt auf einen leeren String zu prüfen.
htmlString
Der gespeicherte Body oder ein leerer String, wenn der Entwurf keinen hat. Auf dem Rückweg gibt es kein separates Textfeld, ein nur mit `text` gespeicherter Entwurf wird daher hier zurückgegeben.
fromString or nil
Die Adresse, mit der der Entwurf gespeichert wurde, nur gemeldet, solange der Workspace noch als sie senden kann. nil bei einem Entwurf, der ohne Absender oder von einer inzwischen entfernten Adresse gespeichert wurde.
threadIdString or nil
Der Thread, auf den der Entwurf antwortet, oder nil bei einem Entwurf, der eine neue Konversation beginnt.
attachmentsArray<Hash>
Jeder Eintrag hat nur `filename` und `contentType`, weil Anhänge von Entwürfen als Namen und Typen ohne Inhalt gespeichert werden. Ein `update` leert diese Liste.