使用Google双因子身份验证与mu4e& Gmail的

时间:2014-09-30 03:36:57

标签: emacs gmail mu

我一直在使用Google 2 factor auth,并配置了多个应用程序。其中一个是offlineimap(我下载邮件),但当我使用mu4e撰写邮件时,我收到以下错误:

Sending failed: 534-5.7.9 Application-specific password required. 
Learn more at  534-5.7.9 
http://support.google.com/accounts/bin/answer.py?answer=185833

我配置了〜/ .authinfo.gpg(并且手动成功解密),我的〜/ .offlineimaprc调用get_password_emacs(我使用的示例可以找到here)。

我甚至试图跳过gpg片段以查看它是否有效,直接在〜/ .offlineimaprc中使用我的mu4e Google App密码,但我最终得到的结果相同。

我的〜/ .authinfo.gpg文件:(此处解密,删除敏感信息)

machine imap.gmail.com login me@gmail.com port 993 password GoogleAppPassword
machine smtp.gmail.com login me@gmail.com port 587 password GoogleAppPassword

我的〜/ .offlineimaprc文件:

[general]
accounts = Gmail
maxsyncaccounts = 3
pythonfile = ~/.offlineimap.py

[Account Gmail]
localrepository = Local
remoterepository = Remote

[Repository Local]
type = Maildir
localfolders = ~/Maildir

[Repository Remote]
remotehost = imap.gmail.com 
remoteuser = me@gmail.com 
remotepasseval = get_password_emacs("imap.gmail.com",  "me@gmail.com", "993")
ssl = yes
maxconnections = 1
realdelete = no
holdconnectionopen = true
keepalive = 60
type = IMAP

和我的〜/ .offlineimap.py

#!/usr/bin/python
import re, os

def get_password_emacs(machine, login, port):
    s = "machine %s login %s port %s password ([^ ]*)\n" % (machine, login, port)
    p = re.compile(s)
    authinfo = os.popen("gpg -q --no-tty -d ~/.authinfo.gpg").read()
    return p.search(authinfo).group(1)

任何人都可以看到我遇到的问题吗?我已经验证〜/ .authinfo.gpg文件已成功解密,并且我的Google App密码正确无误。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

  

直接在〜/ .offlineimaprc

中使用我的mu4e Google App密码

这正是问题所在。您不应该直接使用密码。对于不接受第二个因子令牌的旧应用程序,您需要使用特定于应用程序的密码。这是您通过此URL生成的密码:

https://security.google.com/settings/security/apppasswords

您使用生成的密码代替您的真实密码。但是,您应该注意,这些特定于应用程序的密码授予您对帐户的完全访问权限。因此,使用应用密码会大大降低您在帐户中启用双因素所带来的保护。