From abd8b7ada8445d1ea88889428af571cd02021599 Mon Sep 17 00:00:00 2001
From: "Allan V. C. Quadros"
Date: Sun, 17 Dec 2023 01:16:22 -0600
Subject: [PATCH] v1.1.2-CRAN
---
DESCRIPTION | 11 +++--
NEWS.md | 10 ++++
R/R6.R | 13 ++++--
R/clean-fetch-results.R | 16 +++----
R/execute-attachment-fetch.R | 64 +++++++++++++------------
R/fetch-attachments-int.R | 6 ++-
R/get-attachments-int.R | 65 +++++++++++++++-----------
docs/articles/basics.html | 4 +-
docs/articles/code_migration.html | 4 +-
docs/articles/index.html | 2 +-
docs/articles/xoauth2.0.html | 4 +-
docs/authors.html | 10 +++-
docs/index.html | 3 +-
docs/news/index.html | 34 +++++++++++---
docs/pkgdown.yml | 2 +-
docs/reference/AND.html | 4 +-
docs/reference/ImapCon.html | 16 +++++--
docs/reference/OR.html | 4 +-
docs/reference/before.html | 4 +-
docs/reference/configure_imap.html | 4 +-
docs/reference/decode_mime_header.html | 4 +-
docs/reference/flag.html | 4 +-
docs/reference/index.html | 2 +-
docs/reference/larger_than.html | 4 +-
docs/reference/list_attachments.html | 4 +-
docs/reference/mRpostman-package.html | 2 +-
docs/reference/metadata_options.html | 4 +-
docs/reference/older_than.html | 4 +-
docs/reference/on.html | 4 +-
docs/reference/pipe.html | 4 +-
docs/reference/sent_before.html | 4 +-
docs/reference/sent_on.html | 4 +-
docs/reference/sent_since.html | 4 +-
docs/reference/since.html | 4 +-
docs/reference/smaller_than.html | 4 +-
docs/reference/string.html | 4 +-
docs/reference/younger_than.html | 4 +-
man/ImapCon.Rd | 12 ++++-
38 files changed, 222 insertions(+), 134 deletions(-)
diff --git a/DESCRIPTION b/DESCRIPTION
index cd5c9fb..9ee212a 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,13 +1,18 @@
Package: mRpostman
Type: Package
Title: An IMAP Client for R
-Version: 1.1.1
-Date: 2023-07-27
+Version: 1.1.2
+Date: 2023-12-17
Authors@R: c(
person(given="Allan", family="Quadros",
role = c("aut", "cre"),
email = "allanvcq@gmail.com",
- comment = c(ORCID = "0000-0003-3250-5380")))
+ comment = c(ORCID = "0000-0003-3250-5380")),
+ person(given="Paul", family="Smith",
+ role = c("ctb")),
+ person(given="Kurt", family="Hornik",
+ role = c("ctb"))
+ )
Description: An easy-to-use IMAP client that provides tools for message searching,
selective fetching of message attributes, mailbox management, attachment extraction,
and several other IMAP features, paving the way for e-mail data analysis in R.
diff --git a/NEWS.md b/NEWS.md
index e841d2e..64fec4b 100755
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,13 @@
+## mRpostman 1.1.2 (2023-12-17 CRAN update)
+
+### Methods & Functions
+
+- `clean_fetch_results()`: added argument `useBytes = TRUE` to all `gsub()` calls. According to Kurt Hornik, "fetching fails using current versions of R for some contents with non-ASCII characters".
+
+- Added bypass argument `as_is` to methods/functions `get_attachments()`, `execute_fetch_attachments()`, `fetch_attachments()`; and `as_is` functionality to `get_attachments()` and `execute_fetch_attachments` as proposed by Pauls Smith to handle non-base64 files.
+
+---
+
## mRpostman 1.1.1 (2023-07-27 Github patch)
### Documentation
diff --git a/R/R6.R b/R/R6.R
index 3bb20cb..b0f3cd7 100644
--- a/R/R6.R
+++ b/R/R6.R
@@ -1681,6 +1681,8 @@ ImapCon <- R6::R6Class("ImapCon",
#' command is successfully executed. Default is \code{FALSE}.
#' @param mute A \code{logical}. If \code{TRUE}, mutes the confirmation message
#' when the command is successfully executed. Default is \code{FALSE}.
+ #' @param as_is If \code{TRUE} then write out attachments without base64
+ #' decoding. Default is \code{FALSE}.
#' @note \href{#method-get_attachments}{\code{ImapCon$get_attachments()}}:
#' This method is to be used after the body or the
#' text part of one or more messages were fetched. This makes sense if the
@@ -1730,9 +1732,9 @@ ImapCon <- R6::R6Class("ImapCon",
#' con$get_attachments(msg_list = out)
#' }
get_attachments = function(msg_list, content_disposition = "both",
- override = FALSE, mute = FALSE) {
+ override = FALSE, mute = FALSE, as_is = FALSE) {
out <- get_attachments_int(self, msg_list, content_disposition, override,
- mute)
+ mute, as_is)
invisible(out)
@@ -1797,6 +1799,8 @@ ImapCon <- R6::R6Class("ImapCon",
#' when the command is successfully executed. Default is \code{FALSE}.
#' @param retries Number of attempts to connect and execute the command. Default
#' is \code{1}.
+ #' @param as_is If \code{TRUE} then write out attachments without base64
+ #' decoding. Default is \code{FALSE}.
#' @note \href{#method-fetch_attachments}{\code{ImapCon$fetch_attachments()}}: All
#' attachments will be stored in a folder labeled with the message id
#' inside the \code{working directory > servername > foldername}.
@@ -1836,9 +1840,10 @@ ImapCon <- R6::R6Class("ImapCon",
#'
#' }
fetch_attachments = function(msg_id, use_uid = FALSE, content_disposition = "both",
- override = FALSE, mute = FALSE, retries = 1) {
+ override = FALSE, mute = FALSE, retries = 1,
+ as_is = FALSE) {
out <- fetch_attachments_int(self, msg_id, use_uid, content_disposition,
- override, mute, retries)
+ override, mute, retries, as_is)
invisible(out)
diff --git a/R/clean-fetch-results.R b/R/clean-fetch-results.R
index 4a24da9..b8f6af9 100644
--- a/R/clean-fetch-results.R
+++ b/R/clean-fetch-results.R
@@ -6,24 +6,24 @@ clean_fetch_results <- function(msg_text, metadata_attribute = NULL, attachment_
pattern1 = "\\* \\d+ FETCH.*BODY.*\\{\\d+\\}\r\n"
# result <- stringr::str_remove(string = msg_text, pattern = pattern1)
- result <- gsub(pattern1, "", msg_text, ignore.case = TRUE)
+ result <- gsub(pattern1, "", msg_text, ignore.case = TRUE, useBytes = TRUE)
pattern2 = "\\)\r\n[A-Z]\\d+ OK Success\r\n"
# result <- stringr::str_remove(string = result, pattern = pattern2)
- result <- gsub(pattern2, "", result, ignore.case = TRUE)
+ result <- gsub(pattern2, "", result, ignore.case = TRUE, useBytes = TRUE)
pattern3 = "\\)\r\n[A-Z]\\d+ OK FETCH completed.\r\n" #MS Exchange and yandex
# result <- stringr::str_remove(string = result, pattern = pattern3)
- result <- gsub(pattern3, "", result, ignore.case = TRUE)
+ result <- gsub(pattern3, "", result, ignore.case = TRUE, useBytes = TRUE)
# attachments
pattern4 = "\\)\r\n[A-Z]\\d+ OK FETCH completed\r\n" #MS Exchange
# result <- stringr::str_remove(string = result, pattern = pattern3)
- result <- gsub(pattern4, "", result, ignore.case = TRUE)
+ result <- gsub(pattern4, "", result, ignore.case = TRUE, useBytes = TRUE)
pattern5 = "\r\n UID \\d+ FLAGS \\(.*\\)" #MS Exchange # important for attachments fetching
# result <- stringr::str_remove(string = result, pattern = pattern3)
- result <- gsub(pattern5, "", result, ignore.case = TRUE)
+ result <- gsub(pattern5, "", result, ignore.case = TRUE, useBytes = TRUE)
# pattern5 = "\r\n \\d+ FLAGS \\(.*\\)" #MS Exchange
# # result <- stringr::str_remove(string = result, pattern = pattern3)
@@ -33,15 +33,15 @@ clean_fetch_results <- function(msg_text, metadata_attribute = NULL, attachment_
if (!is.null(metadata_attribute) && (!any(metadata_attribute == "UID" || metadata_attribute == "uid"))) {
pattern6 = "UID \\d+$| UID \\d+$"
# result <- stringr::str_remove(string = result, pattern = pattern2)
- result <- gsub(pattern6, "", result, ignore.case = TRUE)
+ result <- gsub(pattern6, "", result, ignore.case = TRUE, useBytes = TRUE)
}
pattern7 = "^\\* \\d+ FETCH \\(" # important for fetch_metadata()
- result <- gsub(pattern7, "", result, ignore.case = TRUE)
+ result <- gsub(pattern7, "", result, ignore.case = TRUE, useBytes = TRUE)
if (isTRUE(attachment_fetch)) { # in order to not have problem with fetcH_body/text + get_attachments() combo
pattern8 = "==\r\n FLAGS \\((.*?)\\)|=\r\n FLAGS \\((.*?)\\)" # important for fetch_attachments with use_uid = FALSE - it returns the msg flags after the attachment part on Office 365
- result <- gsub(pattern8, "", result, ignore.case = TRUE)
+ result <- gsub(pattern8, "", result, ignore.case = TRUE, useBytes = TRUE)
}
diff --git a/R/execute-attachment-fetch.R b/R/execute-attachment-fetch.R
index b29e8fa..1801ef5 100644
--- a/R/execute-attachment-fetch.R
+++ b/R/execute-attachment-fetch.R
@@ -19,10 +19,12 @@
#' name, which will be uses to create a local folder.
#' @param retries Number of attempts to connect and execute the command. Default
#' is \code{1}.
+#' @param as_is If \code{TRUE} then write out attachments without base64
+#' decoding. Default is \code{FALSE}.
#' @noRd
execute_attachment_fetch <- function(self, id, id_folder, df_meta_to_fetch, fetch_request,
folder_clean, content_disposition,
- override, retries) {
+ override, retries, as_is) {
url <- self$con_params$url
@@ -183,34 +185,38 @@ execute_attachment_fetch <- function(self, id, id_folder, df_meta_to_fetch, fetc
# # base64 encoding
# if (encodings[i] == "base64") {
- # saving attachments
- # thank's to:
- # https://stackoverflow.com/questions/36708191/convert-base64-to-png-jpeg-file-in-r
- # writing binary file
- temp_bin_name <- paste0(sample(letters, 4), sample(0:9, 4), collapse="")
- conn <- file(paste0(complete_path, "/", temp_bin_name, ".bin"),"wb")
- writeBin(attachment, conn)
- close(conn)
- # decoding from BIN to the appropriate file extension
- inconn <- file(paste0(complete_path, "/", temp_bin_name, ".bin"),"rb")
- outconn <- file(complete_path_with_filename,"wb")
-
- # base64 text decoding
- tryCatch({
- base64enc::base64decode(what=inconn, output=outconn)
- }, error = function(e) {
- warning(paste0("Base64 text decoding failed for", df_meta_to_fetch$filenames[i]))
- })
-
- close(inconn)
- close(outconn)
-
- unlink(paste0(complete_path, "/", temp_bin_name, ".bin")) # deleting binary file
- # From unlink() help: Not deleting a non-existent file is not a failure
- # we don't need a tryCatch()
-
- # }
-
+ if (as_is) {
+ ## write out the file directly to the final file name
+ writeBin(attachment, complete_path_with_filename)
+ } else {
+ # saving attachments
+ # thank's to:
+ # https://stackoverflow.com/questions/36708191/convert-base64-to-png-jpeg-file-in-r
+ # writing binary file
+ temp_bin_name <- paste0(sample(letters, 4), sample(0:9, 4), collapse="")
+ conn <- file(paste0(complete_path, "/", temp_bin_name, ".bin"),"wb")
+ writeBin(attachment, conn)
+ close(conn)
+ # decoding from BIN to the appropriate file extension
+ inconn <- file(paste0(complete_path, "/", temp_bin_name, ".bin"),"rb")
+ outconn <- file(complete_path_with_filename,"wb")
+
+ # base64 text decoding
+ tryCatch({
+ base64enc::base64decode(what=inconn, output=outconn)
+ }, error = function(e) {
+ warning(paste0("Base64 text decoding failed for", df_meta_to_fetch$filenames[i]))
+ })
+
+ close(inconn)
+ close(outconn)
+
+ unlink(paste0(complete_path, "/", temp_bin_name, ".bin")) # deleting binary file
+ # From unlink() help: Not deleting a non-existent file is not a failure
+ # we don't need a tryCatch()
+
+ # }
+ }
}
diff --git a/R/fetch-attachments-int.R b/R/fetch-attachments-int.R
index 54c2348..faf38fa 100644
--- a/R/fetch-attachments-int.R
+++ b/R/fetch-attachments-int.R
@@ -17,9 +17,11 @@
#' containing the same name in the local directory. Default is \code{FALSE}.
#' @param mute A \code{logical}. If \code{TRUE}, mutes the confirmation message
#' when the command is successfully executed. Default is \code{FALSE}.
+#' @param as_is If \code{TRUE} then write out attachments without base64
+#' decoding. Default is \code{FALSE}.
#' @noRd
fetch_attachments_int <- function(self, msg_id, use_uid, content_disposition, override,
- mute, retries) {
+ mute, retries, as_is) {
#check
check_args(msg_id = msg_id, use_uid = use_uid, content_disposition = content_disposition,
@@ -104,7 +106,7 @@ fetch_attachments_int <- function(self, msg_id, use_uid, content_disposition, ov
if (nrow(df_meta_to_fetch) > 0) {
execute_attachment_fetch(self, id, id_folder, df_meta_to_fetch, fetch_request,
folder_clean, content_disposition,
- override, retries)
+ override, retries, as_is)
} # if not, do nothing
} #if not, do nothing
diff --git a/R/get-attachments-int.R b/R/get-attachments-int.R
index 9baa177..42587ce 100644
--- a/R/get-attachments-int.R
+++ b/R/get-attachments-int.R
@@ -10,9 +10,11 @@
#' containing the same name in the local directory. Default is \code{FALSE}.
#' @param mute A \code{logical}. If \code{TRUE}, mutes the confirmation message
#' when the command is successfully executed. Default is \code{FALSE}.
+#' @param as_is If \code{TRUE} then write out attachments without base64
+#' decoding. Default is \code{FALSE}.
#' @noRd
get_attachments_int <- function(self, msg_list, content_disposition, override,
- mute) {
+ mute, as_is) {
# previous folder selection checking
if (is.na(self$con_params$folder)) {
@@ -190,31 +192,42 @@ get_attachments_int <- function(self, msg_list, content_disposition, override,
# complete_path_with_filename <- serialize_filename(
# prefix = paste0(complete_path, "/", filenames[i]))
- # saving attachments
- # thank's to:
- # https://stackoverflow.com/questions/36708191/convert-base64-to-png-jpeg-file-in-r
- # writing binary file
- temp_bin_name <- paste0(sample(letters, 4), sample(0:9, 4), collapse="")
- conn <- file(paste0(complete_path, "/", temp_bin_name, ".bin"),"wb")
- writeBin(attachments_text[i], conn)
- close(conn)
- # decoding from BIN to the appropriate file extension
- inconn <- file(paste0(complete_path, "/", temp_bin_name, ".bin"),"rb")
- outconn <- file(complete_path_with_filename,"wb")
-
- # base64 text decoding
- tryCatch({
- base64enc::base64decode(what=inconn, output=outconn)
- }, error = function(e) {
- warning(paste0("Base64 text decoding failed for", adjusted_filenames[i]))
- })
-
- close(inconn)
- close(outconn)
-
- unlink(paste0(complete_path, "/", temp_bin_name, ".bin")) # deleting binary file
- # From unlink() help: Not deleting a non-existent file is not a failure
- # we don't need a tryCatch()
+ # bypass proposed by @waternumbers at https://github.com/allanvc/mRpostman/pull/8
+ # It was originally proposed to fecth_attachments(), but ...
+ # I incorporated it in get_attachments() as well
+ if (as_is) {
+ ## write out the file directly to the final file name
+ writeBin(attachments_text[i], complete_path_with_filename)
+ } else {
+ # saving attachments
+ # thank's to:
+ # https://stackoverflow.com/questions/36708191/convert-base64-to-png-jpeg-file-in-r
+ # writing binary file
+ temp_bin_name <- paste0(sample(letters, 4), sample(0:9, 4), collapse="")
+ conn <- file(paste0(complete_path, "/", temp_bin_name, ".bin"),"wb")
+ writeBin(attachments_text[i], conn)
+ close(conn)
+ # decoding from BIN to the appropriate file extension
+ inconn <- file(paste0(complete_path, "/", temp_bin_name, ".bin"),"rb")
+ outconn <- file(complete_path_with_filename,"wb")
+
+ # base64 text decoding
+ tryCatch({
+ base64enc::base64decode(what=inconn, output=outconn)
+ }, error = function(e) {
+ warning(paste0("Base64 text decoding failed for", adjusted_filenames[i]))
+ })
+
+ close(inconn)
+ close(outconn)
+
+ unlink(paste0(complete_path, "/", temp_bin_name, ".bin")) # deleting binary file
+ # From unlink() help: Not deleting a non-existent file is not a failure
+ # we don't need a tryCatch()
+
+
+ }
+
}
diff --git a/docs/articles/basics.html b/docs/articles/basics.html
index 6cba432..e48dc02 100644
--- a/docs/articles/basics.html
+++ b/docs/articles/basics.html
@@ -38,7 +38,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -98,7 +98,7 @@
mRpostman basics
- Source: vignettes/basics.Rmd
+ Source: vignettes/basics.Rmd
basics.Rmd
diff --git a/docs/articles/code_migration.html b/docs/articles/code_migration.html
index 5620ee5..a4fc3ed 100644
--- a/docs/articles/code_migration.html
+++ b/docs/articles/code_migration.html
@@ -38,7 +38,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -99,7 +99,7 @@ Migrating old code to the new mRpostman’s
syntax
- Source: vignettes/code_migration.Rmd
+ Source: vignettes/code_migration.Rmd
code_migration.Rmd
diff --git a/docs/articles/index.html b/docs/articles/index.html
index 5a4c26d..5176812 100644
--- a/docs/articles/index.html
+++ b/docs/articles/index.html
@@ -79,7 +79,7 @@
mRpostman
- 1.1.1
+ 1.1.2
diff --git a/docs/articles/xoauth2.0.html b/docs/articles/xoauth2.0.html
index 951df74..d123a77 100644
--- a/docs/articles/xoauth2.0.html
+++ b/docs/articles/xoauth2.0.html
@@ -38,7 +38,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -98,7 +98,7 @@
IMAP OAuth2.0 authentication in mRpostman
- Source: vignettes/xoauth2.0.Rmd
+ Source: vignettes/xoauth2.0.Rmd
xoauth2.0.Rmd
diff --git a/docs/authors.html b/docs/authors.html
index 5c9bceb..5443d43 100644
--- a/docs/authors.html
+++ b/docs/authors.html
@@ -79,7 +79,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -144,6 +144,14 @@ Authors
Allan Quadros. Author, maintainer.
+
+ Paul Smith. Contributor.
+
+
+
+ Kurt Hornik. Contributor.
+
+
diff --git a/docs/index.html b/docs/index.html
index 532e58e..b6632ae 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -40,7 +40,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -478,6 +478,7 @@ License
Developers
diff --git a/docs/news/index.html b/docs/news/index.html
index 39c6466..b43fd8c 100644
--- a/docs/news/index.html
+++ b/docs/news/index.html
@@ -79,7 +79,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -137,9 +137,31 @@
+
+
+mRpostman 1.1.2 (2023-12-17 CRAN update)
+
+
+Methods & Functions
+
+clean_fetch_results()
: added argument
+useBytes = TRUE
to all gsub()
calls. According
+to Kurt Hornik, “fetching fails using current versions of R for some
+contents with non-ASCII characters”.
+Added bypass argument as_is
to methods/functions
+get_attachments()
,
+execute_fetch_attachments()
,
+fetch_attachments()
; and as_is
functionality
+to get_attachments()
and
+execute_fetch_attachments
as proposed by Pauls Smith to
+handle non-base64 files.
+
+
+
+
mRpostman 1.1.1 (2023-07-27 Github patch)
@@ -166,9 +188,9 @@
www.rfc-editor.org/rfc/…)
-
+
-Methods & Functions
+
Methods & Functions
- updated completion msg in all fetch methods to:
"\n::mRpostman: fetch operation is complete.\n"
@@ -190,9 +212,9 @@
-
+
-Methods & Functions
+
Methods & Functions
- updated completion msg in all fetch methods to:
"\n::mRpostman: fetch operation is complete.\n"
diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml
index 26cd3cd..1dfea3b 100644
--- a/docs/pkgdown.yml
+++ b/docs/pkgdown.yml
@@ -5,5 +5,5 @@ articles:
basics: basics.html
code_migration: code_migration.html
xoauth2.0: xoauth2.0.html
-last_built: 2023-07-28T15:23Z
+last_built: 2023-12-17T07:13Z
diff --git a/docs/reference/AND.html b/docs/reference/AND.html
index 3a9fa48..5e6f3a3 100644
--- a/docs/reference/AND.html
+++ b/docs/reference/AND.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/ImapCon.html b/docs/reference/ImapCon.html
index 5b51876..708b873 100644
--- a/docs/reference/ImapCon.html
+++ b/docs/reference/ImapCon.html
@@ -81,7 +81,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -139,7 +139,7 @@
@@ -2282,7 +2282,8 @@
Exa
msg_list,
content_disposition = "both",
override = FALSE,
- mute = FALSE
+ mute = FALSE,
+ as_is = FALSE
)
Arguments
@@ -2302,6 +2303,9 @@
Arg
mute
A logical
. If TRUE
, mutes the confirmation message
when the command is successfully executed. Default is FALSE
.
+as_is
If TRUE
then write out attachments without base64
+decoding. Default is FALSE
.
+
Returns
TRUE
if the operation is successful. The files are saved
@@ -2369,7 +2373,8 @@
Exa
content_disposition = "both",
override = FALSE,
mute = FALSE,
- retries = 1
+ retries = 1,
+ as_is = FALSE
)
Arguments
@@ -2399,6 +2404,9 @@
Arg
retries
Number of attempts to connect and execute the command. Default
is 1
.
+as_is
If TRUE
then write out attachments without base64
+decoding. Default is FALSE
.
+
Returns
A list
with the fetch contents.
diff --git a/docs/reference/OR.html b/docs/reference/OR.html
index 4e54e50..ddf6f3b 100644
--- a/docs/reference/OR.html
+++ b/docs/reference/OR.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/before.html b/docs/reference/before.html
index c6f14ae..7858217 100644
--- a/docs/reference/before.html
+++ b/docs/reference/before.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/configure_imap.html b/docs/reference/configure_imap.html
index cbc012d..e56eaff 100644
--- a/docs/reference/configure_imap.html
+++ b/docs/reference/configure_imap.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/decode_mime_header.html b/docs/reference/decode_mime_header.html
index 63c2cb4..0f3c454 100644
--- a/docs/reference/decode_mime_header.html
+++ b/docs/reference/decode_mime_header.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/flag.html b/docs/reference/flag.html
index 5736627..735f80e 100644
--- a/docs/reference/flag.html
+++ b/docs/reference/flag.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/index.html b/docs/reference/index.html
index 8d04e16..2183bde 100644
--- a/docs/reference/index.html
+++ b/docs/reference/index.html
@@ -79,7 +79,7 @@
mRpostman
- 1.1.1
+ 1.1.2
diff --git a/docs/reference/larger_than.html b/docs/reference/larger_than.html
index e407292..82e1af1 100644
--- a/docs/reference/larger_than.html
+++ b/docs/reference/larger_than.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/list_attachments.html b/docs/reference/list_attachments.html
index f43a3b6..dc6c11f 100644
--- a/docs/reference/list_attachments.html
+++ b/docs/reference/list_attachments.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/mRpostman-package.html b/docs/reference/mRpostman-package.html
index dc6c98c..86d51de 100644
--- a/docs/reference/mRpostman-package.html
+++ b/docs/reference/mRpostman-package.html
@@ -82,7 +82,7 @@
mRpostman
- 1.1.1
+ 1.1.2
diff --git a/docs/reference/metadata_options.html b/docs/reference/metadata_options.html
index 6717147..4e6677c 100644
--- a/docs/reference/metadata_options.html
+++ b/docs/reference/metadata_options.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/older_than.html b/docs/reference/older_than.html
index 661863b..6baaebc 100644
--- a/docs/reference/older_than.html
+++ b/docs/reference/older_than.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/on.html b/docs/reference/on.html
index 63cf7c6..3d84c24 100644
--- a/docs/reference/on.html
+++ b/docs/reference/on.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/pipe.html b/docs/reference/pipe.html
index c331d89..60f0503 100644
--- a/docs/reference/pipe.html
+++ b/docs/reference/pipe.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/sent_before.html b/docs/reference/sent_before.html
index 4ba0b4c..84b1b36 100644
--- a/docs/reference/sent_before.html
+++ b/docs/reference/sent_before.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/sent_on.html b/docs/reference/sent_on.html
index e3d44cc..7c1132c 100644
--- a/docs/reference/sent_on.html
+++ b/docs/reference/sent_on.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/sent_since.html b/docs/reference/sent_since.html
index c73b35d..d648950 100644
--- a/docs/reference/sent_since.html
+++ b/docs/reference/sent_since.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/since.html b/docs/reference/since.html
index 5d9bbdb..d9e530a 100644
--- a/docs/reference/since.html
+++ b/docs/reference/since.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/smaller_than.html b/docs/reference/smaller_than.html
index 80ed195..a64efde 100644
--- a/docs/reference/smaller_than.html
+++ b/docs/reference/smaller_than.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/string.html b/docs/reference/string.html
index 9184623..31478e0 100644
--- a/docs/reference/string.html
+++ b/docs/reference/string.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/docs/reference/younger_than.html b/docs/reference/younger_than.html
index 25d6717..e8c0f1f 100644
--- a/docs/reference/younger_than.html
+++ b/docs/reference/younger_than.html
@@ -80,7 +80,7 @@
mRpostman
- 1.1.1
+ 1.1.2
@@ -138,7 +138,7 @@
diff --git a/man/ImapCon.Rd b/man/ImapCon.Rd
index 7847ba2..5974fbd 100644
--- a/man/ImapCon.Rd
+++ b/man/ImapCon.Rd
@@ -3174,7 +3174,8 @@ Extract attached file(s) from fetched message(s)
msg_list,
content_disposition = "both",
override = FALSE,
- mute = FALSE
+ mute = FALSE,
+ as_is = FALSE
)}\if{html}{\out{
}}
}
@@ -3195,6 +3196,9 @@ command is successfully executed. Default is \code{FALSE}.}
\item{\code{mute}}{A \code{logical}. If \code{TRUE}, mutes the confirmation message
when the command is successfully executed. Default is \code{FALSE}.}
+
+\item{\code{as_is}}{If \code{TRUE} then write out attachments without base64
+decoding. Default is \code{FALSE}.}
}
\if{html}{\out{}}
}
@@ -3285,7 +3289,8 @@ Fetch message attachments
content_disposition = "both",
override = FALSE,
mute = FALSE,
- retries = 1
+ retries = 1,
+ as_is = FALSE
)}\if{html}{\out{}}
}
@@ -3316,6 +3321,9 @@ when the command is successfully executed. Default is \code{FALSE}.}
\item{\code{retries}}{Number of attempts to connect and execute the command. Default
is \code{1}.}
+
+\item{\code{as_is}}{If \code{TRUE} then write out attachments without base64
+decoding. Default is \code{FALSE}.}
}
\if{html}{\out{}}
}