我在解码使用Gmail API收到的电子邮件的邮件正文时遇到严重问题.我想抓取消息内容并将内容放在div中.我正在使用base64解码器,我知道它不会解码编码不同的电子邮件,但我不知道如何检查电子邮件以决定使用哪个解码器 - 说明它们是utf-8编码的电子邮件已成功解码base64解码器,但不是utf-8解码器.
我已经研究了几天的电子邮件解码,而且我已经了解到我在这里的联盟有点不合适.我之前没有做过很多关于电子邮件编码的工作.这是我用于获取电子邮件的代码:
gapi.client.load('gmail', 'v1', function() {
var request = gapi.client.gmail.users.messages.list({
labelIds: ['INBOX']
});
request.execute(function(resp) {
document.getElementById('email-announcement').innerHTML = '<i>Hello! I am reading your <b>inbox</b> emails.</i><br><br>------<br>';
var content = document.getElementById("message-list");
if (resp.messages == null) {
content.innerHTML = "<b>Your inbox is empty.</b>";
} else {
var encodings = 0;
content.innerHTML = "";
angular.forEach(resp.messages, function(message) {
var email = gapi.client.gmail.users.messages.get({
'id': message.id
});
email.execute(function(stuff) {
if (stuff.payload == null) {
console.log("Payload null: " + message.id);
}
var header = "";
var …
Run Code Online (Sandbox Code Playgroud) 在摆弄Gmail API时,我注意到如果我不使用任何过滤器,则Users.messages:list方法还会返回通过Google环聊或Gmail聊天发送和接收的邮件.哪个非常好.
环聊消息的json对象的结构类似于电子邮件(带有负载,标题等),但提供的唯一标头是发件人.没有关于消息发送时间的信息.我查看了所有其他Gmail API方法(线程,历史记录...),但没有提供聊天消息的日期时间信息.
知道是否/如何查找聊天/环聊消息的时间戳(来自后端进程)?
如何通过标签名称获取标签ID?
我可以通过获取标签列表并解析响应来获取标签ID.但是,当我只对特定标签感兴趣时,这看起来效率很低.
是否可以直接获取标签ID传递标签名称?
我正在尝试使用gmail api阅读gmail邮件,并在阅读邮件后,我正在删除邮件标签,以便我不需要再次处理它.我能够成功读取邮件,但是当我尝试修改邮件时Label
(service.Users.Messages.Modify(mods, userId, messageId).Execute();
)
然后我收到错误信息:
发生错误:Google.Apis.Requests.RequestError
权限不足[403]
错误[
消息[权限不足]位置[ - ]原因[insufficientPermis
sions]域[global]>
].
我无法弄明白,可能出了什么问题?提前致谢.
我正在运行一个 cron 作业,它执行 python 脚本以读取 gmail(2 分钟间隔)。我使用 imaplib 来阅读新邮件。直到昨天,这一切都很好。突然它抛出低于错误
imaplib.error: [AUTHENTICATIONFAILED] 凭据无效(失败)
有时我收到以下错误
raise self.abort(bye[-1]) imaplib.abort: [UNAVAILABLE] 临时系统错误
当我在不同的机器上运行相同的脚本时。它的工作正常。我假设主机已被列入黑名单或类似的东西。
我有哪些选择?
我无法生成凭据(Gmail API),因为这是在公司域帐户下。
通过 gmail API 发送邮件时如何设置发件人姓名和姓氏?
我使用这个代码:https : //github.com/chris-brown-nz/python-gmail-api
代码很棒,我成功发送了邮件。但是,发件人的姓名只是@
sign留下的文本。示例:如果John Travis
从johnhomeboy@gmail.com
接收方显示的姓名发送电子邮件,则将是johnhomeboy
,而不是John Travis
。我需要设置什么属性才能发送带有我的名字和姓氏的电子邮件?
$firstEmail = "joe@gmail.com";
$secondEmail = "notjoe@gmail.com";
Function Set-MIMEBase64Encoded
{
Param(
[string]$subject
)
#Creates a MIME formatted email.
$text = "From: $firstEmail\r\n" + "To: $secondEmail\r\n" + "Subject: $subject\r\n\r\n" + "$subject";
$bytes = [System.Text.Encoding]::Unicode.GetBytes($text);
#Converts to Base 64.
$encodedText =[Convert]::ToBase64String($bytes);
#Makes encoding URL safe.
$urlSafe1 = $encodedText.replace('+', '-');
$urlSafe2 = $urlSafe1.replace('/', '_');
$urlSafe3 = $urlSafe2.replace('=', '*');
return $urlSafe3;
}
Function Mail-Output
{
Param(
[String]$subject
)
#Acquires access token.
$accessToken = Refresh-AccessToken;
#Sends subject for MIMEB64 encoding
$text = Set-MIMEBase64Encoded -subject $subject;
#Requests …
Run Code Online (Sandbox Code Playgroud) 我想使用 gmail api 提取整个邮件正文。现在我正在使用“片段”,但我需要整个文本。我搜索并发现它与有效载荷有关,但我不明白如何。有人可以给我举个例子吗?另外,我通过 python 使用 Gmail api。
是否可以通过 API 访问 Gmail 贪睡的日期?我在 stackoverflow 中遇到了一个黑客,它允许用户通过秘密标签搜索“label:snoozed”来搜索哪些电子邮件被暂停,但标签通常没有关联的日期,尤其是将来会返回收件箱的日期。
我正在尝试创建一个网络例程,将待办事项列表与电子邮件同步,并希望截止日期自动更新,何时重新出现被暂停的电子邮件。
谷歌提供的任何 API 或开发人员资源都可以做到这一点吗?
我想编写一个应用程序来处理我的一些以某种方式标记的 Gmail 电子邮件。
这里的示例代码为我的代码提供了一个起点(我使用 Promise 而不是 async wait 重写了代码):
'use strict';
const path = require('path');
const { google } = require('googleapis');
const { authenticate } = require('@google-cloud/local-auth');
authenticate({
keyfilePath: path.join(__dirname, 'key.json'),
scopes: [
'https://www.googleapis.com/auth/gmail.readonly',
],
}).then(auth => {
google.options({ auth })
gmail.users.messages.list({
userId: "me",
}).then((res) => {
console.log(res.data)
}).catch(err => {
console.log(err)
})
}).catch(err => {
console.log(err);
})
Run Code Online (Sandbox Code Playgroud)
以下是我到目前为止所采取的步骤:
key.json
GOOGLE_APPLICATION_CREDENTIALS="$(pwd)/key.json" node index.js
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误:
TypeError: Cannot read property 'redirect_uris' of undefined
at authenticate (/home/user/dev/gmail-processor/node_modules/@google-cloud/local-auth/build/src/index.js:46:15)
at …
Run Code Online (Sandbox Code Playgroud) javascript node.js google-cloud-platform gmail-api google-auth-library-nodejs
gmail-api ×10
email ×2
gmail ×2
javascript ×2
python ×2
c# ×1
decoding ×1
google-api ×1
imaplib ×1
mime ×1
node.js ×1
powershell ×1
python-3.x ×1