開発プロセスへの展望を使用してメールを受信する必要がある、我々は、コントロールは、ソースコードを送信した後、いくつかの欠点、RPAメールの研究を持っていることがわかった、ループを記述店にフォルダ内のすべてのメッセージをコード未読メッセージを受信し、添付ファイルのポイント。
シンプルで直接、コード
UBPA インポートioutlook から UBPA インポートiResult から ubpa.ilog インポートのILog インポート一時ファイル のインポートOSの __loggerを =のILog(__FILE__ ) __attachment_path = tempfile.gettempdir()+ os.sep #デフォルトパスの保存 DEFの recv_outlook(mail_account、subject_filter、mail_inbox、attachment_pathを、トップ、MARK_AS_READ =真、only_unread = 真): '' ' :PARAM mail_account:Eメール :のparam subject_filter:テーマ :のparam mail_inbox:受信トレイ名 :のparam attachment_path:アクセサリー・パス :のparamトップ:一度、いくつかの電子メールを読みます :PARAM MARK_AS_READ:メッセージを読むとしてマーク PARAM only_unread:未読メッセージの リターン:タプル(メールオブジェクト、未読メッセージの合計数) '' ' # のメーリングリストの メール= [] NUM = 1 トレイ = ioutlook.get_inbox(mail_account 、mail_inbox) IF 受信トレイ: メッセージ =のinbox.Items IF only_unread: メッセージ = messages.Restrict(' [未読]は= TRUE ') #未読メッセージ messages.Sort(" [ReceivedTime] "、TRUE) #の書き込み時間を降順 #未読の総数 TOTAL_NUM = LEN(メッセージ) IF ないトップ: トップ = LEN(メッセージ) __loggerの .DEBUG(U " トータル受ける[ " + STR(LEN(メッセージ))+ " ]メールのコピーは、上位NをGET:" + STR(トップ)) #のサイクル未読メッセージ のためのメッセージでのメッセージ: #添付ファイルリスト ATTSは= [] IF NUM> トップ: BREAKの 送信者 = message.SenderEmailAddressの #の送信者アドレス = message.Subject件名の #関連 ボディmessage.Body = #のテキスト CC = message.CC #のCCの received_time = STR(message.ReceivedTime)# の書き込み時間の 添付ファイル=のmessage.Attachments #のアクセサリー #1 に関連する決意かどうかが IF subject_filter と subject_filter しない で件名: 続行 他の: フラグに = 真 #フィルタ等body_filter、sender_filter:上記のように、のような、決意の複数の条件を添加してもよい #1 ループアタッチメント 用アタッチメントに添付: FILE_NAME = attachment.FileName att_file_path = attachment_path + os.sep + FILE_NAME attachment.SaveAsFile(att_file_path) atts.append(att_file_path) 場合、フラグ: MAIL_MESSAGE = iresult.MailMessage() #实例化 #属性赋值 mail_message.sender_mail = 差出人 mail_message.received_time = received_time mail_message.subject =対象 mail_message.body = ボディ mail_message.cc = CC mail_message.attachmentsの =のATTSの mails.append(MAIL_MESSAGE) NUM + = 1。IF MARK_AS_READ: message.UnRead = Falseの #の読みとしてフラグを印刷(' 附属書:' 、ATTS) リターンメール、 TOTAL_NUMの#充電が完了するまで、未読メッセージを修飾円形受信機 のn = 1。しばらく真: FP = R&LT " C:Users \ユーザー\ rongg \デスクトップ\新しいフォルダ\アタッチメントAAA%sの 「%N- IF ないos.path.exists(FP): os.mkdir(FP) の試行: メールで、total_mail_num = recv_outlook(' [email protected] '、' テスト'、' 受信トレイ'、FP ,. 1 ) 印刷(' メッセージオブジェクト:' 、電子メールで) プリント(' 送信者:' 、メールに[0] .sender_mail) プリント(' メッセージの件名:' 電子メール[0] .Subject) プリント(' メッセージ本文:' 、メールに[0] .body) プリント(" メッセージの総数:'total_mail_num) プリント(' - ' * 100 )を除いてはIndexError: 印刷(' いいえ未読メッセージ' ) IF。total_mail_num <= 1 : BREAK N- + 1 =
後続の更新。。。。