{emayili} Message Threads

[This article was first published on R - datawookie, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Being able to view related messages as threads is really useful. To make this possible, messages must use either the In-Reply-To or References header field to link to the Message-ID from another message.

This is now possible in {emayili}.

library(emayili)

options(envelope.details = TRUE)
options(envelope.invisible = FALSE)

packageVersion("emayili")
[1] '0.6.3'

Let’s configure an SMTP server.

smtp <- server(
  host = Sys.getenv("SMTP_SERVER"),
  port = Sys.getenv("SMTP_PORT"),
  username = Sys.getenv("SMTP_USERNAME"),
  password = Sys.getenv("SMTP_PASSWORD")
)

Now create and send a message to start the thread.

msg <- envelope(
  from = Sys.getenv("SMTP_USERNAME"),
  to = Sys.getenv("SMTP_USERNAME")
)

msg %>%
  subject("Original message") %>%
  smtp()

When the message is delivered you can find the value of the Message-ID field among the other headers.

Message-ID: <[email protected]>
Date: Sun, 17 Oct 2021 22:25:33 -0700 (PDT)
X-Google-Original-Date: Mon, 18 Oct 2021 05:25:32 GMT
X-Mailer:                  {emayili}-0.6.5
MIME-Version:              1.0
Subject:                   Original message

This can then be used to send a response in the same thread.

msg %>%
  inreplyto("<[email protected]>") %>%
  subject("First reply") %>%
  smtp(verbose)
Message-ID: <[email protected]>
Date: Sun, 17 Oct 2021 22:26:27 -0700 (PDT)
X-Google-Original-Date: Mon, 18 Oct 2021 05:25:32 GMT
X-Mailer:                  {emayili}-0.6.5
MIME-Version:              1.0
In-Reply-To:               <[email protected]>
Subject:                   First reply

Notice that the In-Reply-To field contains the value of the Message-ID field from the original message. This message, in turn, has a Message-ID which can be used for subsequent responses. Note: The Message-ID from the response looks very similar to that from the original message, but if you look carefully you’ll see that it differs by a few characters.

Let’s send a response to this too.

msg %>%
  inreplyto("<[email protected]>") %>%
  subject("Comment on first reply") %>%
  smtp()

You can also use the references() function to populate the References field, which has essentially the same effect as the In-Reply-To field. How about another reply to the original message?

msg %>%
  references("<[email protected]>") %>%
  subject("Second reply") %>%
  smtp()
Message-ID: <[email protected]>
Date: Sun, 17 Oct 2021 22:26:45 -0700 (PDT)
X-Google-Original-Date: Mon, 18 Oct 2021 05:25:32 GMT
X-Mailer:                  {emayili}-0.6.5
MIME-Version:              1.0
References:                <[email protected]>
Subject:                   Second reply

This is what the thread looks like in Thunderbird after sending a few more responses.


The {emayili} package is developed & supported by Fathom Data.

To leave a comment for the author, please follow the link and comment on their blog: R - datawookie.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)