Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 提取未读电子邮件(纯文本)并存储在Google文档中_Email_Google Apps Script_Gmail - Fatal编程技术网

Email 提取未读电子邮件(纯文本)并存储在Google文档中

Email 提取未读电子邮件(纯文本)并存储在Google文档中,email,google-apps-script,gmail,Email,Google Apps Script,Gmail,问题:我们每天收到十几封邮件。我们需要定期打印所有这些文件。谷歌应用程序脚本是否可以只读取未读邮件并将其存储在谷歌文档中?没有HTML什么,我只需要以下格式的纯文本 ​日期:1月3日 2017年02:40主题:Re:新年快乐致:“Br.Sayan” 。。。。。。信息 我一直在寻找解决方案,但最终得到了如下结果。现在我们需要将未读邮件的msgIDs传递给函数。我认为其余的格式可以在以后零碎的基础上解决 function saveGmail(msgID) { // Based on Driv

问题:我们每天收到十几封邮件。我们需要定期打印所有这些文件。谷歌应用程序脚本是否可以只读取未读邮件并将其存储在谷歌文档中?没有HTML什么,我只需要以下格式的纯文本

​日期:1月3日 2017年02:40主题:Re:新年快乐致:“Br.Sayan”

。。。。。。信息

我一直在寻找解决方案,但最终得到了如下结果。现在我们需要将未读邮件的
msgID
s传递给函数。我认为其余的格式可以在以后零碎的基础上解决

function saveGmail(msgID) {

  // Based on Drive Scoop
  // Available at https://github.com/google/gfw-deployments

  var message = GmailApp.getMessageById(msgID);

  // Grab the message's headers.
  var from = message.getFrom();
  var subject = message.getSubject();
  var to = message.getTo();
  var cc = message.getCc();
  var date = message.getDate();
  var body = message.getBody();

  // Begin creating a doc.
  var document = DocumentApp.create(subject);  
  var document_title = document.appendParagraph(subject);  
  document_title.setHeading(DocumentApp.ParagraphHeading.HEADING1);

  var style = {};
  style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = (DocumentApp.HorizontalAlignment.CENTER);
  document_title.setAttributes(style);

  var headers_heading = (document.appendParagraph("Gmail Message Headers"));
  headers_heading.setHeading(DocumentApp.ParagraphHeading.HEADING2);

  AddGmailHeaderToDoc(document, "From", from);
  AddGmailHeaderToDoc(document, "To", to);
  AddGmailHeaderToDoc(document, "Cc", cc);
  AddGmailHeaderToDoc(document, "Date", date);
  AddGmailHeaderToDoc(document, "Subject", subject);

  var body_heading = (
    document.appendParagraph("Body (without Markup)"));
  body_heading.setHeading(DocumentApp.ParagraphHeading.HEADING2);

  var sanitized_body = body.replace(/<\/div>/, "\r\r");
  sanitized_body = sanitized_body.replace(/<br.*?>/g, "\r");
  sanitized_body = sanitized_body.replace(/<\/p>/g, "\r\r");
  sanitized_body = sanitized_body.replace(/<.*?>/g, "");
  sanitized_body = sanitized_body.replace(/'/g, "'");
  sanitized_body = sanitized_body.replace(/"/g, '"');
  sanitized_body = sanitized_body.replace(/&/g, "&");
  sanitized_body = sanitized_body.replace(/\r\r\r/g, "\r\r");

  var paragraph = document.appendParagraph(sanitized_body);

  document.saveAndClose();

  return document.getUrl();

}

function AddGmailHeaderToDoc(document, header_name, header_value) {
  if (header_value === "") return;
  var paragraph = document.appendParagraph("");
  paragraph.setIndentStart(72.0);
  paragraph.setIndentFirstLine(36.0);
  paragraph.setSpacingBefore(0.0);
  paragraph.setSpacingAfter(0.0);    
  var name = paragraph.appendText(header_name + ": ");
  name.setBold(false);
  var value = paragraph.appendText(header_value);
  value.setBold(true);
}
函数saveGmail(msgID){
//基于驱动铲
//可在https://github.com/google/gfw-deployments
var message=GmailApp.getMessageById(msgID);
//抓取邮件的标题。
var-from=message.getFrom();
var subject=message.getSubject();
var to=message.getTo();
var cc=message.getCc();
var date=message.getDate();
var body=message.getBody();
//开始创建文档。
var文件=文件页创建(主题);
var文件标题=文件附录段落(主题);
文件标题设置标题(文件第页段落标题设置标题1);
var style={};
样式[DocumentApp.Attribute.HorizontalAlignment]=(DocumentApp.HorizontalAlignment.CENTER);
文件标题.设置属性(样式);
var headers_heading=(document.append段落(“Gmail消息头”);
标题_heading.setHeading(文件页段落标题2);
AddGmailHeaderToDoc(文件“发件人”,发件人);
AddGmailHeaderToDoc(文件“至”,至);
AddGmailHeaderToDoc(文件“抄送”,抄送);
AddGmailHeaderToDoc(文件“日期”,日期);
AddGmailHeaderToDoc(文件“主题”,主题);
变量正文标题=(
文件.附加段落(“正文(无标记)”);
正文标题.设置标题(文件第页段落标题.标题2);
var sanitized_body=body.replace(//,“\r\r”);
消毒体=消毒体。替换(//g,“\r”);
已消毒的\u body=已消毒的\u body.replace(//g,“\r\r”);
消毒体=消毒体。替换(//g,“”);
消毒体=消毒体。替换(/“/g,”);
消毒体=消毒体。替换(/“/g,”);
消毒体=消毒体。替换(/&/g,“&”);
消毒体=消毒体。替换(/\r\r/g,“\r\r”);
var段落=文件附录段落(消毒后的正文);
document.saveAndClose();
return document.getUrl();
}
函数AddGmailHeaderToDoc(文档、标题名称、标题值){
if(header_value==“”)返回;
var段落=文件附录段落(“”);
第2.1段(72.0);
第1行(36.0)段;
段落.之前的设置间隔(0.0);
第.段(0.0)之后的设置间隔;
变量名称=段落.appendText(标题名称+“:”);
名称.setBold(假);
var值=段落附录文本(标题值);
value.setBold(true);
}

非常感谢你的帮助

更简单的方法可能是使用“is:unread”搜索

  var threads = GmailApp.search('is:unread');
  var messages = threads[0].getMessages(); 
  for (var i = 0; i < messages.length; i++) {
    Logger.log(messages[i].getId());
  }
var-threads=GmailApp.search('is:unread');
var messages=线程[0]。getMessages();
对于(var i=0;i

这将记录Id,但您也可以返回它们。还要注意线程和消息是不同的。以上内容将获取第一个未读线程和该线程中的所有消息(即使消息已读)。

更简单的方法可能是使用“is:unread”搜索

  var threads = GmailApp.search('is:unread');
  var messages = threads[0].getMessages(); 
  for (var i = 0; i < messages.length; i++) {
    Logger.log(messages[i].getId());
  }
var-threads=GmailApp.search('is:unread');
var messages=线程[0]。getMessages();
对于(var i=0;i

这将记录Id,但您也可以返回它们。还要注意线程和消息是不同的。上面将获取第一个未读线程和该线程中的所有消息(即使消息已读)。

它抛出了一个错误:
TypeError:无法在对象中找到函数getMessages
<代码>GmailApp.search('is:unread')正在工作,因为当使用以下选项进行检查时,
Logger.log
显示未读消息的数量:
Logger.log(“找到的”+threads.length+“消息”)很抱歉[0]位于错误位置,为您更新了答案。它引发了一个错误:
TypeError:在对象中找不到函数getMessages
<代码>GmailApp.search('is:unread')正在工作,因为当使用以下选项进行检查时,
Logger.log
显示未读消息的数量:
Logger.log(“找到的”+threads.length+“消息”)很抱歉[0]位于错误位置,请为您更新答案。