我正在尝试从我的程序向gmail帐户发送主题行中包含中文字符的电子邮件,但主题行显示为????.这是主题行的编码方式:
=?utf-8?B?Rlc6IOiri+W5q+aIkee1piDoiIfkvaDotbfkvobnmoTlkIzkuos=?=
Run Code Online (Sandbox Code Playgroud)
编码有什么问题吗?有什么我必须记住的吗?邮件中还包含正文中的汉字,但这些字符显示得很好.我使用base64编码正文.
我想将Gmail(Google Apps)中的电子邮件以及附件保存到另一个数据库,以实现类似CRM的功能.但是,根据文档,"提取器无法读取电子邮件附件".我的问题:是否有可能以某种方式使用电子邮件中的某种类型的标识符(例如EmailTimeExtractor)并使用它来使用IMAP提取附件?我对环境小工具还不是很熟悉,只是想知道在潜水太远之前我想做什么是可能的!
有没有人知道从C#中的Gmail帐户阅读电子邮件的方法?我已经看了好几个小时,发现了一些选项,似乎很久以前谷歌的协议改变都打破了这些选择.我尝试过POP3和IMAP,似乎都没有用.
由于某种原因OpenSSL.NET不会加载,给我这个错误"无法加载文件或程序集'ManagedOpenSsl,Version = 0.4.3.0,Culture = neutral,PublicKeyToken = null'或其中一个依赖项.尝试进行加载格式不正确的程序." 所以解决这个问题也可以解决我的麻烦
任何人都可以解决OpenSSL的问题(我假设它与libssl32.dll和ssleay32.dll的位置有关,我在/ bin和程序存在的地方尝试过)或者提供另一种从GMail读取电子邮件的解决方案?
我正在使用Javamail对gmail imap服务器进行身份验证,并一次获取一个完整邮箱的邮件头并在本地编制索引.对于消息很少的收件箱,这很好用.对于邮件通常超过10k的收件箱,javamail imap连接被删除(可能由服务器).需要注意的是,此持续时间是随机的.
由于我一个接一个地连续获取消息头,因此没有时间连接空闲很长时间,因此它不能是超时.
- - - - - - - - - - - - - - - 码 - - - - - - - - - - -------------
IMAPSSLStore imapSslStore = connectToImap("imap.googlemail.com", 993, email, oauthToken, oauthTokenSecret, getMyConsumer(), true);
System.out.println("Successfully authenticated to IMAP.\n");
Folder inbox = imapSslStore.getFolder("[Gmail]/All Mail");
inbox.open(Folder.READ_ONLY);
Message messages[] = inbox.getMessages();
for(Message message:messages) {
System.out.println(message);
System.out.println("MSG NO:"+message.getMessageNumber());
System.out.println("FROM:"+message.getFrom().toString());
}
Run Code Online (Sandbox Code Playgroud)
- - - - - - - - - - - - - - - -码 - …
我尝试从收件箱文件夹中删除邮件,一切正常,但当我切换到所有邮件文件夹时删除不起作用.expunge()方法返回('OK', [None])并且未删除消息:
>>>import imaplib
>>>server = imaplib.IMAP4_SSL('imap.gmail.com','993')
>>>server.login('likvidator89@gmail.com','Password')
>>>server.select('inbox')
>>>for i in server.search(None,'all')[1][0].split():
... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1]
...
# that how i know what UID hame my message? I select by subject
#....
#28
#Subject: 1 Question Has 1 Answer - Stack Overflow
#
#
#29
#Subject: 2222222222
#...
>>>server.store(29,'+FLAGS','\\Deleted')
#('OK', ['29 (FLAGS (\\Seen \\Deleted))'])
>>>server.expunge()
#('OK', ['29'])
>>> server.select('[Gmail]/All Mail')
('OK', ['47'])
>>> for i in server.search(None,'all')[1][0].split():
... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1]
...
#....
#
#46 …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建类似于GMail的视图.我知道GMail IMAP有扩展X-GM-THRID,我可以在FETCH命令中使用,但这会返回相同数量的项目,我必须通过线程ID手动分组.有没有更快的方式来分组?我的意思是,可以google imap服务器返回我按线程ID分组的消息列表(比如在gmail web界面中)?更具体:
如果我有这个清单(THREAD ID | TEXT)
我想从服务器获取:
我能这样做吗?最后,我必须通过我自己对此进行分组,但这种解决方案效率低且速度慢(我有很多消息要分组)
对我的英语表示遗憾和抱歉.
尝试使用 XOAUTH2 机制 (https://developers.google.com/google-apps/gmail/xoauth2_protocol) 连接到 Google IMAP 服务时,有时会收到以下错误响应:
{"status":"400","schemes":"Bearer","scope":"https://mail.google.com/"}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有人知道状态 400 到底是什么......
我正在使用标准的IMAP函数来获取PHP中的电子邮件.我需要跟踪构建线程的每条消息的Message-ID(References和In-Reply-To).一旦部署了这个系统,我希望用户能够回复他们邮件客户端中的消息,向线程添加消息,但在我的网络界面中,回复无法附加到原始帖子,因为我没有In-Reply-To来自任何电子邮件标头的ID.我会使用In-Reply-ToID将他们的回复附加到我发给他们的新帖子的通知中,但我不能,因为我无法获取ID.如果我有一个In-Reply-To标题,可以对消息进行分组,因为有一个ID连接它们的线程.
此外,我希望能够回复用户发送到服务器电子邮件地址的任何消息,如果他们的提交有错误或类似的话,在这种情况下我需要Message-ID他们的消息,以便我可以In-Reply-To我发送回复邮件的ID.
我无法获得价值Message-ID,In-Reply-To即使它们确实有价值.(转到Gmail中的任何消息,点击回复按钮旁边的下拉菜单,点击"显示原始内容",您会看到我调用IMAP功能时缺少的所有标题信息实际上都存在,如虽然Gmail不想将这些信息提供给IMAP服务器.)
我已经尝试了各种来电,理应获得头信息(imap_headerinfo,imap_fetchheader,imap_fetch_overview),但它们都返回稀疏值的数组中的头信息,我不需要.执行后
$this->mbox = imap_open('{imap.gmail.com:993/imap/ssl}', $email, $password);
Run Code Online (Sandbox Code Playgroud)
我可以通过任何这些调用从标题中获得一些有用的值:
imap_header($this->getImapStream(), "1");
imap_fetch_overview($this->getImapStream(), "1");
imap_fetchheader($this->getImapStream(), "1");
Run Code Online (Sandbox Code Playgroud)
我能看到的东西一样Subject,To,Reply-To,和其他标头值,而且都是准确的,但是Message-ID,References,In-Reply-To,和其他有价值的头信息是基本不存在的(而,代表他们的数组的值是在任何情况下空).
我几乎可以保证问题不在于代码本身,因为我可以在头文件中看到一些值,并且我可以成功检索消息体; 就像谷歌正在过滤我能看到的标题信息一样.
你可能会注意到我在这个页面上有完全相同的问题,但有人建议我提出自己的问题,这就是我所做的.
如果有人可以给我一种方法来回复来自我的服务器的消息而无需检索Message-ID我正在回复的消息,那就同样可怕了.
我Message-ID在我非常大的收件箱中列出了每条消息,从我所看到的,大约40%的ID实际显示出来.如果我再次运行相同的测试,相同的消息将保留其Message-IDs.我正在搜索显示的消息中的模式,Message-ID但是有非常强有力的证据表明消息类型之间存在非模式.
实际上,每条消息都有一个Message-ID(我已经验证了这个消息,即使其ID没有显示IMAP查询的消息),但IMAP功能只显示某些消息的ID.
我很难在Mutt中显示GMail标签。
我可以很容易地显示标签文件夹,但是我想使用索引格式显示每个邮件的标签。
GMail似乎使用扩展名X-GM-LABELS公开标签,但Mut似乎无法获取它们。
我找到了一个可以完成此任务的代理:https : //github.com/zmughal/gmail-imap-label, 但是由于缺少依赖项,我无法在我的系统上对其进行编译。
有解决这个问题的好方法吗?
是否可以通过使用新的REST API获取使用IMAP api时获得的gmail UID.这样可以保留我的IMAP代码的一部分,并慢慢迁移到新的REST API.
gmail-imap ×10
gmail ×7
imap ×5
java ×2
c# ×1
connection ×1
email ×1
gmail-api ×1
imaplib ×1
jakarta-mail ×1
javascript ×1
mutt ×1
oauth-2.0 ×1
php ×1
python ×1