【问题标题】:How can I get get a particular piece of data from an email?如何从电子邮件中获取特定数据?
【发布时间】:2022-07-25 16:51:45
【问题描述】:

早上好!我正在尝试自动化登录我的电子邮件帐户、访问那里的第一封电子邮件、打开它并检索必要的代码的过程。但是,我对 python/robot 框架并不流利。

我可以只寻找与我需要的代码相近的东西,将其保存为字符串然后修剪它吗?

谢谢!

【问题讨论】:

  • 您没有提供足够的信息,例如,重要的是要知道您正在使用什么电子邮件(POP3 或 IMAP 或其他)。这是一个可能对您有所帮助的库:pypi.org/project/robotframework-imaplibrary
  • 我要去 Outlook 网站并登录,而不是使用库。我已经实现了新库,但是当我运行下面的代码时出现错误! ${new_var} ImapLibrary.get email body 0 [Return] ${new_var} AttributeError: 'NoneType' object has no attribute 'uid'
  • 请提供您所做的代码或目标背后的逻辑。请不要指望整个解决方案。希望你能理解。

标签: python automation robotframework


【解决方案1】:

您可以在ImapLibrary 找到您需要的所有文档。关键字获取电子邮件正文应该可以完成这项工作。之后,您可以使用字符串库来操作您在上一步中保存的正文。

【讨论】:

    【解决方案2】:

    我使用关键字“获取文本”,将其存储到变量中,将内容转换为列表,在特定硬编码位置修剪所述列表,然后将其转换回字符串。这样就完成了。

    代码(可能不是最好的方法)

    ${email_Body} =         Login To Outlook Automation Email   ${email_User}   ${email_Password}
        @{characters}           Split String To Characters      ${email_Body}
    
        ${system}=    Evaluate    platform.system()    platform
    
        IF          "${characters}[0]".upper() == "C" and "${system}".upper() != "LINUX"
            ${x} =  Get Slice From List     ${characters}   517       523   #CAUTION: This email originated from outside the Rail Delivery Group email system. DO NOT click links or open attachments unless you recognise the sender and know the content is safe.
        ELSE IF     "${characters}[0]".upper() == "T" and "${system}".upper() != "LINUX"
            ${x} =  Get Slice From List     ${characters}   385       391   #This Message originated outside your organization.
        ELSE IF     "${characters}[0]".upper() == "C" and "${system}".upper() == "LINUX"
            ${x} =  Get Slice From List     ${characters}   512       529
        ELSE IF     "${characters}[0]".upper() == "Y" and "${system}".upper() != "LINUX"    #QA Outlook Windows
            ${x} =  Get Slice From List     ${characters}   315       321
        ELSE        #QA Outlook Linux
            ${x} =  Get Slice From List     ${characters}   310       316
        END
    
        ${verification_Code_CRM} =  Evaluate  "".join($x)
        log to console    The code is: '${verification_Code_CRM}'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2023-03-20
      • 2016-09-10
      • 1970-01-01
      相关资源
      最近更新 更多