5

「pander」および「sendmailr」パッケージを使用して、添付ファイルとしてではなく、メールの本文に小さなデータ フレームを送信しています。Gmailアカウントとの間で送受信したい.

私は近いですが、列ヘッダーは、たとえばRstudioのようにメール本文の列自体と整列しません.基本的に、列ヘッダーは幅が広すぎて、その下のデータ列と整列できません.

問題は、ダッシュと空白がさまざまな電子メール クライアントで圧縮される方法にあるようです (私は、Web および OS X Mavericks に同梱されている電子メール クライアントを介して、gmail、yahoo、および hotmail でこれを試しました)。「設定」に移動し、「プレーンテキスト メッセージに固定幅フォントを使用する」というラベルの付いたボックスをオンにすることで、OS X メール クライアントの問題を解決できましたが、複数のデバイスで動作するようにしたいと思います。私の同僚の多くのクライアントなどなので、グローバルな電子メール設定を含まない方法があるかどうか疑問に思っています.

問題を再現するコードは次のとおりです。

library(sendmailR) # for emails from R
library(pander) # for table-formatting that does not require HTML

results <- head(iris)
pander(results) # widths look great so far...
a = pandoc.table.return(results)
strsplit(a, "\n") # widths still look great...

panderOptions('table.split.table', Inf) # show all columns on same line

msg_content <- mime_part(
  pandoc.table.return(results, style = "multiline")
)

# I'm using my own gmail address for email_from and email_to
sendmail(from = email_from,
         to = email_to,
         subject = "test",
         msg = msg_content
)

…そして、受信した電子メールには上記の問題があります。

次に、問題を説明する画像を確認できます。

記述された問題

4

1 に答える 1

6

プレーン テキストの電子メールとマークダウン テーブルの使用に関する問題は、通常、電子メール クライアントは固定されていないフォントでテキストを表示し、すべての電子メール クライアントでカスタム設定を使用してそれをオーバーライドする必要があることです (たとえば、 OS X の電子メール クライアントで行いました)。一方、それがHTMLメールが流行している理由です:)

preそれでは、HTML メールを作成して、ブロックにマークダウン テーブルを含めましょう。

msg_content <- mime_part(paste('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body><pre>', paste(pander.return(results, style = "multiline"), collapse = '\n'), '</pre></body>
</html>'))

のバグにより、を HTMLsendmailRにオーバーライドする必要があります。Content-type

msg_content[["headers"]][["Content-Type"]] <- "text/html"

これで、例で使用したコメントを介して送信する準備が整いました。結果は次のようになります。

HTML メールの Pander マークダウン テーブル

テーブルは、他の HTML 対応の電子メール クライアントでも同じように表示されます。このように、必要に応じてマークダウンの代わりに HTML テーブルを使用することもできます。

于 2014-12-30T13:14:09.120 に答える