Foundation Training Lesson11 演習1 でのエラー

はじめまして。Foundation Trainingの受講中なのですが、掲題の件で不明点があり、再度となりますが投稿させていただきます。
【Gmail】レッスン11_練習1.zip (10.5 KB)

レッスン11の演習1で、受信トレイを読み取るワークフローを作成し、添付のExcelファイルで定義された「ルール」に基づいて、電子メールをソートする問題があります。
この問題で、私はGmailで試しているのですが、if文でメールの送り主の名前に応じて
フォルダに振り分ける処理でエラーがでます。
Sort E-mails Has thrown an exception というエラーです。

使用したファイルをお送りいたします。なお、実際に動かした際は、
GamilのIDとPasswordを入力して実行しています。

ご回答をいただけましたら幸いです。

@adachi.kyohei さん、こんにちは
if文のエラーはオブジェクトがnullになっているエクセプションだったので調べたら

mail.Sender.Address.Contains(row(“Sender”).ToString)

のSenderがnullのようでした。ためしに

mail.From.Address.Contains(row(“Sender”).ToString)

に変更したら正常に動いた上に、次にFromをSenderに戻しても正常になりました。
gmailのメールサーバーの仕様なのかな。。。

3/19追記: RFC 2822 Internet Message Formatの3.6.2. Originator fieldsによると
FromとSenderが同じときはSenderフィールドは使用すべきではない(SHOULD NOT)となっているので、FromではなくSenderを参照しているAcademyの解答例(Sort E-mails.xaml)が不適切だと思いました。

1 Like

tango さん

お礼のお返事が遅くなりました。
対処法を教えていただきまして、誠にありがとうございます。
とても困っておりましたので、大変助かりました。

ためしに
mail.From.Address.Contains(row(“Sender”).ToString)
に変更したら正常に動いた上に、次にFromをSenderに戻しても正常になりました。
gmailのメールサーバーの仕様なのかな。。。

このようなことがあるのですね……。
初学者には難しいです。改めてになりますが、
ありがとうございました。

UiPathアカデミーの方へ模範解答“Sort E-mails.xaml”は、Eメールの規格RFC2822的にはSenderではなくFromが適切の旨をお知らせしたところ、精査してくださり、次のアカデミーのリリースでFromに修正されるそうです。