我正试图用.Net提取电子邮件的主题和正文.除了text/html MessagePart之外,似乎没问题.我不确定编码等 - 有没有人让这个工作正常?尝试转换时,它对我有误.
这是text/html Body Data的原始字符串
"PGRpdiBkaXI9Imx0ciI-dGV4dCBpbiBoZXJlPGJyPjwvZGl2Pg0K"
这会引发错误.
"输入不是有效的Base-64字符串,因为它包含非基本64个字符,两个以上的填充字符或填充字符中的非法字符."
这是代码:
UsersResource.MessagesResource.GetRequest gr = gs.Users.Messages.Get(userEmail, TextBox1.Text);
gr.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Full;
Message m = gr.Execute();
foreach (MessagePart p in m.Payload.Parts)
{
if (p.MimeType == "text/html")
{
try
{
byte[] data = Convert.FromBase64String(p.Body.Data);
string decodedString = Encoding.UTF8.GetString(data);
Response.Write(decodedString);
}
catch (Exception ex) { }
}
}
Run Code Online (Sandbox Code Playgroud)
我的解码错了???
谢谢你的帮助.
我正在使用Google推送通知与Google PubSub,并有一个自定义标签,我想监视任何更改.我使用以下代码为标签注册手表(标签的标识为Label_1)
WatchRequest wr = new WatchRequest();
wr.TopicName = "projects/" + primaryLink.ggProjectId + "/topics/iLink" + segmentId;
if (labels != null && labels.Count > 0)
{
wr.LabelIds = new List<string>();
wr.LabelIds.Add("Label_1");
wr.LabelFilterAction = "include";
}
WatchResponse wrr = gs.Users.Watch(wr, emailAccount).Execute();
return "HistoryId " + wrr.HistoryId.ToString();
Run Code Online (Sandbox Code Playgroud)
}
手表注册正常.问题是我收到任何Gmail更改的推送通知,而不仅仅是标签下的更改.
是否支持自定义标签?
我有一个在用户Gmail中查找新邮件的流程.如果消息满足特定的地址条件,则会将消息添加到外部数据库.
我们一直在使用Users.History.List,它返回对它们进行了更改的所有消息.这是非常低效的,因为我们必须随后检查每条消息以查看我们是否已经处理过它.
我们正在考虑使用Users.Messages.List并检查MsgId以查看它是否大于先前的检查(我们存储Id).这里假设MsgId将继续变大.这种做法有缺陷吗?别人在做什么?
非常感谢.
我正在快速启动Gmail插件.
https://developers.google.com/gmail/add-ons/guides/quickstart
当我尝试安装我的开发人员插件时
但是没有复选框......
这个版本有限吗?我们是否需要做其他事情才能实现这一目标?
谢谢你的帮助,保罗C.
我想要一种方法来获取消息的附件列表,而无需下载整个消息.
使用"Users.messages:get",我们可以设置要返回的字段,但我们只能选择"Payload",它将返回消息的整个有效负载
https://developers.google.com/gmail/api/v1/reference/users/messages/get#try-it
我只想要一个附件列表,以便用户可以选择要去取的附件.
有没有更有效的方法来做到这一点?
谢谢你的帮助,
保罗C.
我们有一个使用Gmail API来访问Gmail中电子邮件的应用程序。
我们随机收到以下错误消息
Google.Apis.Requests.RequestError超出速率限制[429]错误[消息[超出速率限制]位置[-]原因[rateLimitExceeded]域[usageLimits]]
然后我们在错误事件中重试代码并得到
Google.Apis.Requests.RequestError后端错误[500]错误[消息[后端错误]位置[-]原因[backendError]域[全局]]
然后我们在发生错误事件时在我们的代码中重试(我们尝试了3次),它按预期工作。
此处的Gmail API后端存在一些问题。我们每天要进行1000次以下的Gmail API调用,并且没有并行进行,因此我看不到我们违反了任何限制。
还有其他人遇到这种奇怪的行为吗?
这是被调用的代码
UsersResource.MessagesResource.GetRequest gr = gs.Users.Messages.Get(emailAccount, msgId);
{
gr.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw;
Message m = new Message();
try
{
m = gr.Execute();
}
}
Run Code Online (Sandbox Code Playgroud) 我们已经使用 Amazon SES 设置了 SPF。
当我们使用https://www.dmarcanalyzer.com/运行测试时
我们得到以下信息:
所以一切看起来都是正确的。
然而,根据我们的 dmarc 报告,我们失败了
<record>
<row>
<source_ip>209.85.220.69</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>flowcx.com.au</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>flowcx.com.au</domain>
<result>pass</result>
<selector>6jm2ei7phvrqgxrufpn4j6rbk757tr6a</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>6gbrjpgwjskckoa6a5zn6fwqkn67xbtw</selector>
</dkim>
<spf>
<domain>mail.flowcx.com.au</domain>
<result>softfail</result>
</spf>
</auth_results>
</record>
Run Code Online (Sandbox Code Playgroud)
据我所知,这是由于 IP 地址为 209.85.220.69。
这不在SES范围内?我知道我们可以将其添加到我们的 spf 记录中 - 但为什么 Amazon SES 从该地址发送?