小编PNC*_*PNC的帖子

无法阅读text/html消息部分

我正试图用.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)

我的解码错了???

谢谢你的帮助.

gmail-api

11
推荐指数
2
解决办法
6090
查看次数

Gmail API Watch不按标签过滤

我正在使用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-api

11
推荐指数
1
解决办法
1579
查看次数

获得新消息的最有效方式

我有一个在用户Gmail中查找新邮件的流程.如果消息满足特定的地址条件,则会将消息添加到外部数据库.

我们一直在使用Users.History.List,它返回对它们进行了更改的所有消息.这是非常低效的,因为我们必须随后检查每条消息以查看我们是否已经处理过它.

我们正在考虑使用Users.Messages.List并检查MsgId以查看它是否大于先前的检查(我们存储Id).这里假设MsgId将继续变大.这种做法有缺陷吗?别人在做什么?

非常感谢.

gmail-api

6
推荐指数
2
解决办法
2632
查看次数

无法找到为我的帐户启用开发人员加载项复选框

我正在快速启动Gmail插件.

https://developers.google.com/gmail/add-ons/guides/quickstart

当我尝试安装我的开发人员插件时

  1. 打开Gmail加载项设置标签
  2. 在"加载项"选项卡中,确保已选中"为我的帐户启用开发人员加载项"复选框

但是没有复选框......

这个版本有限吗?我们是否需要做其他事情才能实现这一目标?

谢谢你的帮助,保罗C.

google-apps-script gmail-addons

6
推荐指数
1
解决办法
862
查看次数

获取邮件附件列表而不下载整个邮件

我想要一种方法来获取消息的附件列表,而无需下载整个消息.

使用"Users.messages:get",我们可以设置要返回的字段,但我们只能选择"Payload",它将返回消息的整个有效负载

https://developers.google.com/gmail/api/v1/reference/users/messages/get#try-it

我只想要一个附件列表,以便用户可以选择要去取的附件.

有没有更有效的方法来做到这一点?

谢谢你的帮助,

保罗C.

gmail-api

5
推荐指数
1
解决办法
1454
查看次数

Gmail API-超出了速率限制[429],后端错误[500]

我们有一个使用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)

c# google-api quota google-api-dotnet-client gmail-api

5
推荐指数
1
解决办法
2659
查看次数

Amazon SES SPF 记录失败

我们已经使用 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 从该地址发送?

spf amazon-ses dmarc

3
推荐指数
1
解决办法
1580
查看次数