8

Outlook の電子メールで送信したいファイルを吐き出す毎日の分析を実行しています。私が使用したコードはここに掲載されており、素晴らしく機能しますが、添付部分は機能しません...

library(RDCOMClient)


OutApp <- COMCreate("Outlook.Application")


outMail = OutApp$CreateItem(0)

outMail[["To"]] = "gkinne@horizonmedia.com"
outMail[["subject"]] = "Bruh"
outMail[["body"]] = "Tester"
outMail[["Attachments"]]$Add("L:/Document.csv")

outMail$Send()

オリジナルはここにあります:

Outlook経由でRでメールを送信する

コードは添付部分まで機能し、添付ファイルなしで電子メールも送信されます。このエラーを吐き出します:

<checkErrorInfo> 80020009 
No support for InterfaceSupportsErrorInfo
checkErrorInfo -2147352567
Error: Exception occurred.

何か案は?

4

7 に答える 7

6

スラッシュを逆にしてエスケープします。

問題は、スラッシュを優先する R でパスが作成されていることです (バックスラッシュはエスケープ文字であるため) が、バックスラッシュのみを使用する Outlook によって解釈されています。

たとえば、ファイルの挿入ダイアログにパスを貼り付けて Outlook 電子メールに添付ファイルを追加してみますが、バックスラッシュをスラッシュに変更します。それは受け入れません。そして、それは本質的にあなたがやろうとしていることです。

逆にバックスラッシュにしてから、バックスラッシュをそれぞれに追加してエスケープします。例えば:

C:\\Users\\MyFiles\\Documents\\document.txt

R はエスケープ文字を取り除き、クリーンなパスを Outlook に渡します。

于 2016-01-21T20:45:18.667 に答える
1

私を助けた答えは、コメントでDavid Arenburgによって提供されました:

フルパスを指定する必要があります。L:/Document.csv はフルパスですか? L はローカル ドライバーですか、それともネットワーク ドライバーをマップしましたか? それ以降の場合は、実際のネットワーク パスを指定する必要があります。

例:\\dfwcot\Home$\lando\bb8\2015-12-24 日報.xlsx

于 2015-12-24T14:09:23.617 に答える
0

Attachments クラスのAddメソッドは、4 つの引数を受け取ります。それらを明示的に指定することをお勧めします。

添付ファイルのソースは、ファイル (ファイル名を含む完全なファイル システム パスで表される) または添付ファイルを構成する Outlook アイテムです。ファイルにアクセスできることを確認してください。

于 2015-05-27T19:13:38.623 に答える
0

「エラー:例外が発生しました」という同じ問題にも直面していました。

しかし、私の場合、ファイルの命名規則がありませんでした。そのため、ファイル名がスペースで区切られていないことを確認し、区切り文字を「-」として使用してください。

于 2018-10-03T11:19:56.317 に答える
0

gsub() 関数を使用して、パス内の「/」を二重のバックスラッシュ「\」に変更できます

これを使って:

outMail[["Attachments"]]$Add(gsub("/","\\" ,"L:/Document.csv", fixed = TRUE))

于 2019-05-20T19:51:07.990 に答える