小编kuh*_*nza的帖子

电子邮件"日期"标题应该是发件人的当地时间还是UTC?

我正在用Python编写一个基于Web的电子邮件客户端,并且出现了一个问题,即电子邮件的"Date"标题应该在发送时表示哪个时区.

RFC 2822在3.3节中指出:

日期和时间应该表达当地时间.

这对我来说似乎含糊不清; 问题是当地时间是谁?电子邮件服务器或发件人?当然,我会假设发件人(可以在任何时区,并且可以更改其帐户首选项).当我看到Python的email.utils.formatdate函数时出现了进一步的混乱,它似乎只提供两种选择:UTC或本地时间(服务器的).对我来说似乎没有任何指定备用时区的选项,或者我错过了什么?

使用time.mktime(senders_tz_aware_now_datetime.timetuple())UTC日期字符串中的结果将时间值传递给formatdate ,考虑到RFC上面提到的内容,这会感觉不对.

那么哪个时区应该是"Date",并且是否存在任何标准函数来创建适当的日期字符串?

python email rfc2822

15
推荐指数
2
解决办法
7940
查看次数

使用google-http-java-client发布多部分表单

从google-http-java-client*docs中不清楚如何发布一个包含文件字段的表单.

例如,我正在尝试使用Google Cloud Print API打印文档:

HttpRequestFactory httpRequestFactory = getHttpRequestFactory();

Map<String, Object> parameters = Maps.newHashMap();
parameters.put("printerId", printRequest.getPrinterId());
parameters.put("title", printRequest.getTitle());
parameters.put("contentType", printRequest.getContentType());
parameters.put("ticket", new Gson().toJson(printRequest.getOptions()));

MultipartContent content = new MultipartContent();
content.addPart(new MultipartContent.Part(new UrlEncodedContent(parameters)));
content.addPart(new MultipartContent.Part(
        new FileContent(printRequest.getContentType(), printRequest.getFile())));

try {
    HttpResponse response = httpRequestFactory.buildPostRequest(
            SubmitUrl, content).execute();
    System.out.println(IOUtils.toString(response.getContent()));
} catch (IOException e) {
    String message = String.format();
    System.out.println("Error submitting print job: " + e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.API返回错误"此请求所需的打印机ID".在我看来,请求没有正确形成.

我究竟做错了什么?

*我专门使用google-http-java-client,因为它可以为我自动刷新OAuth令牌等.请不要回复涉及使用其他HTTP客户端的解决方案.

java google-api google-http-client

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

标签 统计

email ×1

google-api ×1

google-http-client ×1

java ×1

python ×1

rfc2822 ×1