First we will construct a simple text only message
mime() %>%
to("james.f.hester@gmail.com") %>%
from("me@somewhere.com") %>%
text_body("Gmailr is a very handy package!") -> text_msg
You can convert the message to a properly formatted MIME message using as.character()
.
strwrap(as.character(text_msg))
## [1] "MIME-Version: 1.0\r Date: Mon, 11 Apr 2016 20:46:00 GMT\r To:"
## [2] "james.f.hester@gmail.com\r From: me@somewhere.com\r Content-Type:"
## [3] "multipart/mixed; boundary=7a7158ef20d03d5a44a25a71d47ebef6\r"
## [4] "Content-Disposition: inline\r \r MIME-Version: 1.0\r Date: Mon, 11"
## [5] "Apr 2016 20:46:00 GMT\r Content-Type: text/plain; charset=utf-8;"
## [6] "format=flowed\r Content-Transfer-Encoding: quoted-printable\r"
## [7] "Content-Disposition: inline\r \r Gmailr is a very handy package!\r"
## [8] "--7a7158ef20d03d5a44a25a71d47ebef6--\r"
You can also construct html messages. It is customary to provide a text only message along with the html message, but with modern email clients this is not strictly necessary.
mime() %>%
to("james.f.hester@gmail.com") %>%
from("me@somewhere.com") %>%
html_body("<b>Gmailr</b> is a <i>very</i> handy package!") -> html_msg
You can add attachments to your message in two ways.
attach_file()
. The mime type is automatically guessed by mime::guess_type
, or you can specify it yourself with the type
parameter.write.csv(file = "iris.csv", iris)
html_msg %>%
subject("Here are some flowers") %>%
attach_file("iris.csv") -> file_attachment
attach_part()
to attach the binary data to your file.html_msg %>% attach_part(part = charToRaw("attach me!"), name = "please") -> simple_attachment
You can upload any mime message into your gmail drafts using create_draft()
. Be sure to give yourself at least compose
permissions first.
create_draft(file_attachment)
This inserts the message directly into your mailbox, bypassing gmail’s default scanning and classification algorithms.
insert_message(file_attachment)
This imports the email as though it was a normal message, with the same scanning and classification as normal email.
insert_message(file_attachment)
send_draft()
sends an email using the draft_id
of an existing draft (possibly created with create_draft()
).
my_drafts <- drafts()
send_draft(id(my_drafts, "draft_id")[1])
You can also send an email message directly from a mime
object using send_message()
.
send_message(file_attachment)