メールの本文の中の特定文字列を取得

みなさんお疲れ様です

メールの本文を取得し、その中に記載のあるメールアドレスーアットマークつきの文字列ーを複数あればある分取得したいのですが、どのような方法がありますでしょうか?
アットマークの前後のスペースや改行までの文字を、そこまで厳密でなくてもかまわないのですが、取得したいです
その後エクセルに書き込みます。

多分、もっといい方法があるでしょうけど。。。

1)文字列の最後に、を付加
2)半角空白を、ControlChars.Lfに置換
3)ControlChars.Crを、Stirng.Emptyに置換
4)”@”を、ControlChars.tab & "@“に置換
5)”@”cで、.Splitする
6)配列になっているので、繰り返し(コレクションの各要素)で評価
6-1)繰り返しの文字列の先頭が”@"なら、一つ前の文字列の、最後のLf以降をメアドとし、現文字列の最初のLfまでをドメインとし、それぞれ連結して、メアドとする

元)こんにちは<Lf>A@Jp B@Jp<Cr><Lf>C@jp

1)こんにちは<Lf>A@Jp B@Jp<Cr><Lf>C@jp<Lf>
2)こんにちは<Lf>A@Jp<Lf>B@Jp<Cr><Lf>C@jp<Lf>
3)こんにちは<Lf>A@Jp<Lf>B@Jp<Lf>C@jp<Lf>
4)こんにちは<Lf>A<tab>@Jp<Lf>B<tab>@Jp<Lf>C<tab>@jp<Lf>
5)こんにちは<Lf>A
@Jp<Lf>B
@Jp<Lf>C
@jp<Lf>

どうでしょう?

1 Like

こんにちは

一致する文字列を取得アクティビティにある正規表現ビルダーにメールアドレスのパターンがインプリメントされていますので、これを使うのが手っ取り早いと思います。

入力はそのメール本文を、結果はIEnumerable<Match>型になります。(CTRL+Kを使って生成するのが楽です。)繰り返し(コレクションの要素)アクティビティを使って中身を処理できます。

3 Likes

おぉ!こっちの方が断然簡単!

ありがとうございます!
綺麗に取得できました
大変助かります。

2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.