@stsfrkw (Satoshi Furukawa)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

MATLAB:Outlookのメールを テキスト形式で保存する方法

解決したいこと

MATLABにて、ActiveXにより、Outlookの メールを ファイル名を付けて保存する際、
ファイルの種類を テキスト(.txt) で保存する方法を教えてください。

発生している問題・エラー

関数 'Save' の呼び出しで、正しくない引数データ型または欠落した引数をチェックしてください。
 
### 該当するソースコード
```MATLAB
objNameSpace = objol.GetNamespace('MAPI');   
objInbox = objNameSpace.GetDefaultFolder('olFolderInbox');  
objMails  = objInbox.Items;

t_filePath = fullfile(pwd, 'test');
objMails.Item(1).Save([ t_filePath, '.txt' ] , 'olTXT' )

自分で試したこと

Outlookメッセージ形式(.msg)では、保存するファイルの種類を省略して保存できています。

objMails.Item(1).SaveAs([ t_filePath, '.msg'])

0 likes

2Answer

MATLABが純粋なActiveXを利用できるなら
ActiveXコントロールをインストールしましょう、また、単純にoutlookからテキスト出力しては?

outlook vba

または

Application_NewMailEx

で検索するとサンプルがでてきますよ。

このサンプルはエクセル出力ですが、出力をテキストに変更しては?

尚、excelからoutlookのメールフォルダをみる方法もありますのでMATLABにおきかえては?

0Like

アドレスありがとうございます。

SaveAsメソッドでなく、メールオブジェクトから取得した各プロパティを
fprintf関数で、テキストファイルに書き込めました。

objMail = objMails.Item(i_mail);
t_filePath = fullfile(pwd, 'test.txt');
fid = fopen(t_filePath, "w");

if fid ~= -1
fprintf(fid, "%s\n", [ '差出人:', objMail.SenderName ]);
fprintf(fid, "%s\n", [ '送信日時:', objMail.ReceivedTime ]);
fprintf(fid, "%s\n", [ '宛先:', objMail.To ]);
fprintf(fid, "%s\n", [ '件名:', objMail.Subject ]);
fprintf(fid, "%s\n", objMail.Body);
fclose(fid);

end

0Like

Your answer might help someone💌