首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用专用帐户从电子邮件中获取链接

使用专用帐户从电子邮件中获取链接
EN

Stack Overflow用户
提问于 2014-07-21 14:06:22
回答 2查看 76关注 0票数 1

我一直在为web应用程序编写自动化测试,它涉及发送电子邮件,不仅是为了创建帐户和重新设置密码,而且作为实际产品的前提,它用虚拟文档发送电子邮件。

作为我测试的一部分,我显然需要检查这些电子邮件中是否包含某些元素,例如。链接到注册,链接到文件等。

我已经编写了一些python代码(用于gmail原子提要),它只是查找和打印每封电子邮件的标题,如果它们是链接,也要打印它,但是它找不到链接。

代码语言:javascript
复制
import urllib2
import untangle

FEED_URL = 'https://mail.google.com/mail/feed/atom'

def get_unread_msgs(user, passwd):
    auth_handler = urllib2.HTTPBasicAuthHandler()
    auth_handler.add_password(
        realm='New mail feed',
        uri='https://mail.google.com',
        user='{user}@gmail.com'.format(user=user),
        passwd=passwd
    )

    opener = urllib2.build_opener(auth_handler)
    urllib2.install_opener(opener)
    feed = urllib2.urlopen(FEED_URL)
    return feed.read()

if __name__ == "__main__":
    import getpass

    user = raw_input('Username: ')
    passwd = getpass.getpass('Password: ')
    xml = get_unread_msgs(user, passwd)
    o = untangle.parse(xml)

    try:
        for item in o.feed.entry:
            title = item.title.cdata
            print title
            link = item.link.cdata
            if link:
                print "Link"
                print '   ', link

    except IndexError:
        pass    # no new mail

编辑:,我刚刚意识到原子提要实际上并没有给出消息数据。

有谁能建议一种替代的方法来实现我的目标吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-21 16:16:24

您可以通过imaplib访问消息:

代码语言:javascript
复制
import imaplib

def get_unread_msgs(user, passwd):
    M = imaplib.IMAP4_SSL('imap.gmail.com')
    M.login(user, passwd)
    try:
        M.select()
        try:
            type, data = M.search(None, '(UNSEEN)')
            for num in data[0].split():
                yield M.fetch(num, '(RFC822)')
        finally:
            M.close()
    finally:
        M.logout()

您需要在gmail设置中启用IMAP,如果您还没有:

票数 1
EN

Stack Overflow用户

发布于 2014-07-21 22:56:47

如果您正在寻找(gmail特定的)解决方案而不轮询服务器进行更新,则可以查看Gmail通知 API。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24867139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档