Google Apps脚本不发送电子邮件(内部发送除外)

让我首先感谢任何尝试提供帮助的人。现在,问题:

我有一个执行以下操作的脚本(嗯,不是,因为第一部分失败了):

  • 第1部分:,它检查Google通讯录中给定组/标签中的所有联系人,并向每个联系人发送电子邮件。这是失败的部分!

  • 第2部分::生成一个表单(部署为Web App时),每个联系人可以在其中输入更新后的联系人详细信息。

  • 第3部分:提交的联系人详细信息将更新发件人的Google联系人中的现有联系人。

运行脚本(使用“初始化”功能)时,我收到了个人帐户上与工作帐户相关联的电子邮件(作为恢复电子邮件和辅助电子邮件)(因为该邮件是本地发送的,而不是使用SMTP发送的), (通过邮件标题)),但该组中没有其他联系人收到电子邮件。由于这是唯一失败的部分,我认为问题一定与“ GmailApp.sendEmail”功能有关(尽管可能与在指定组中获取联系人有关的某些问题有关),但是到目前为止,经过数天的故障排除后,我找不到解决方法...:-(

如果有人可以帮助我,我将非常感激。并先谢谢一千!

快速更新: 因此,我找到了一种测试结果的方法,看来该问题与我的Google通讯录联系人有关。 Contacts [i] .getPrimaryEmail()的输出将除一个联系人(一个带有我的辅助邮箱的联系人)以外的所有联系人显示为null:

联系人




nuno*******da@gmail.com


null

附加了脚本文件“ Code.gs”和“ form.html”的内容。


NAME_TEMPLATE=%{{service_name}}.%{{environment_name}}
function Initialize() {
  
  var NAME  = "Mark Twain";           // It will show up in the signature of your outgoing emails
  var CONTactGROUP = "Test1";     // Enter the exact name of your Google Contacts group 
  var SIGNATURE = '<a href="https://www.sopimat.com/" target="_blank"><img src="https://i.ibb.co/V9jjDkc/sopimat-signature-png-1.png" alt="Sopimat" border="0" class="center"></a>';
  
  
  
  try {
    var group = ContactsApp.getcontactGroup(CONTactGROUP);
    
    if (group) {
      
      var emailSUBJECT  = "Your contact information";    
      var Contacts = group.getcontacts();
      
      for (i=0; i<Contacts.length; i++) {
        
        var email = Contacts[i].getPrimaryEmail();
        
        
        
        if (email && email.length) {
          
          var ID = Contacts[i].getId();
          ID = ID.substr(ID.lastIndexOf("/") + 1);
          
          var emailBody = "Hi,<br /><br />" +
            "We created a Form using Google Scripts to let our contacts update their own contact information on our Google Contacts database,in order to keep all the details updated and make sure that you receive all the necessary information from us.<br /><br />Please take a moment to update your contact information in my address book.<br /><br />" + 
              "To proceed,<a href='" + ScriptApp.getService().getUrl() + "?id=" + 
                ID + "'>click here</a> to open the form and fill-in your updated contact details. " +
                  "Your information will be automatically added to my Google Contacts." + "<br /><br />" + "<a href='" + ScriptApp.getService().getUrl() + "?id=" + 
                ID + "'><b>Go to Form ►►</b></a>" +
                    "<br /><br />Thanks,<br />" + NAME + "<br /><br />" + SIGNATURE;
          
          GmailApp.sendEmail(email,emailSUBJECT,emailBody,{htmlBody:emailBody,name:NAME});
        }
      }
    }   
  } catch (e) {
    throw e.toString();
  }
}

function doGet(e) {
  var html = HtmlService.createTemplateFromFile("form.html");
  html.id = e.parameter.id;
  var contact = GetBasicContact(e.parameter.id);
  html.email = contact.EMAIL;
  html.name = contact.NAME;
  return html.evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

function GetBasicContact(id) {    
    
  var contact = {};
  
  contact.NAME = "";
  contact.EMAIL = "";

  id = "https://www.google.com/m8/feeds/contacts/" + encodeURIComponent(Session.getEffectiveUser().getEmail()) + "/base/" + id; 
  
  var c = ContactsApp.getcontactById(id);    
  
  if (c) {
    
    if (c.getFullName().length)
      contact.NAME = c.getFullName();
    
    if(c.getEmails(ContactsApp.Field.HOME_EMAIL).length)
      contact.EMAIL = c.getEmails(ContactsApp.Field.HOME_EMAIL)[0].getaddress();
    
  }    
  
  return contact;
  
}

function getcontact(id) {    
    
  var contact = {};  
  
  contact.FOUND = 0;
  contact.id = id;
  
  try {
    
    var c = ContactsApp.getcontactById(id);    
    
    if (c) {
            
      contact.FOUND = 1;
      
      if (c.getFullName().length)
        contact.FULL_NAME = c.getFullName();
      
      if(c.getEmails(ContactsApp.Field.HOME_EMAIL).length)
        contact.HOME_EMAIL = c.getEmails(ContactsApp.Field.HOME_EMAIL)[0].getaddress();

      if(c.getPhones(ContactsApp.Field.MOBILE_PHONE).length)
        contact.MOBILE_PHONE = c.getPhones(ContactsApp.Field.MOBILE_PHONE)[0].getPhoneNumber();
      
      if(c.getaddresses(ContactsApp.Field.HOME_ADDRESS).length) {
        contact.HOME_ADDRESS = c.getaddresses(ContactsApp.Field.HOME_ADDRESS)[0].getaddress();
        contact.HOME_ADDRESS = contact.HOME_ADDRESS.replace(/\n/g,",");
      }
      
      if(c.getIMs(ContactsApp.Field.SKYPE).length)
        contact.SKYPE = c.getIMs(ContactsApp.Field.SKYPE)[0].getaddress();
            
      if(c.getUrls(ContactsApp.Field.BLOG).length)
        contact.BLOG = c.getUrls(ContactsApp.Field.BLOG)[0].getaddress();
      
      if(c.getDates(ContactsApp.Field.BIRTHDAY).length) {
        var months = ["0","JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMber","OCTOber","NOVEMber","DECEMber"];
        contact.BIRTHDAY = months.indexOf(c.getDates(ContactsApp.Field.BIRTHDAY)[0].getMonth().toString()) +
          "/" + c.getDates(ContactsApp.Field.BIRTHDAY)[0].getDay() +
          "/" + c.getDates(ContactsApp.Field.BIRTHDAY)[0].getYear();
      }      
    }    
    
    return contact;
  
  } catch (e) {
  
    return contact;    
  
  }  
  
}


function UpdateContact(contact) {    
  
  try {   
            
    var cid = "https://www.google.com/m8/feeds/contacts/" + encodeURIComponent(Session.getEffectiveUser().getEmail()) + "/base/" + contact.id; 
    
    var c = ContactsApp.getcontactById(cid);    
    
    if (c) { 
                  
      c.setfullName(contact.FULL_NAME);
            
      if(c.getIMs(ContactsApp.Field.SKYPE).length)
        c.getIMs(ContactsApp.Field.SKYPE)[0].deleteIMField();
      
      if (contact.SKYPE.length)
        c.addIM(ContactsApp.Field.SKYPE,contact.SKYPE);   
      
      if (c.getaddresses(ContactsApp.Field.HOME_ADDRESS).length)
        c.getaddresses(ContactsApp.Field.HOME_ADDRESS)[0].deleteAddressField();
      
      if (contact.HOME_ADDRESS.length)
        c.addAddress(ContactsApp.Field.HOME_ADDRESS,contact.HOME_ADDRESS);
      
      if (c.getPhones(ContactsApp.Field.MOBILE_PHONE).length)
        c.getPhones(ContactsApp.Field.MOBILE_PHONE)[0].deletePhoneField();
      
      if (contact.MOBILE_PHONE.length)
        c.addPhone(ContactsApp.Field.MOBILE_PHONE,contact.MOBILE_PHONE);
      
      if (c.getUrls(ContactsApp.Field.BLOG).length)
        c.getUrls(ContactsApp.Field.BLOG)[0].deleteUrlField();
      
      if (contact.BLOG.length)
        c.addUrl(ContactsApp.Field.BLOG,contact.BLOG);     
      
      if(contact.TWITTER.length) { 
        var cfields = c.getcustomFields();
        for (var i = 0; i < cfields.length; i++) {
          if (cfields[i].getLabel() == 'Twitter') {
            cfields[i].deleteCustomField();
          }
        }
        c.addCustomField("Twitter","https://twitter.com/" + contact.TWITTER);
      }
            
      if (contact.BIRTHDAY.length) {
        
        var months = 
            [ 0,ContactsApp.Month.JANUARY,ContactsApp.Month.FEBRUARY,ContactsApp.Month.MARCH,ContactsApp.Month.APRIL,ContactsApp.Month.MAY,ContactsApp.Month.JUNE,ContactsApp.Month.JULY,ContactsApp.Month.AUGUST,ContactsApp.Month.SEPTEMber,ContactsApp.Month.OCTOber,ContactsApp.Month.NOVEMber,ContactsApp.Month.DECEMber
            ];
        
        var date = contact.BIRTHDAY.split("/");
        
        if (c.getDates(ContactsApp.Field.BIRTHDAY).length)
          c.getDates(ContactsApp.Field.BIRTHDAY)[0].deleteDateField();
        
        c.addDate(ContactsApp.Field.BIRTHDAY,months[parseFloat(date[0])],parseFloat(date[1]),parseFloat(date[2]));
        
      }
      
      GmailApp.sendEmail(Session.getEffectiveUser().getEmail(),"Updated: " + contact.FULL_NAME + " (" + contact.HOME_EMAIL + ")",Utilities.jsonStringify(contact));
      
      
    }    
    
  } catch (e) {
    
  }  
  
}

nongdada123456 回答:Google Apps脚本不发送电子邮件(内部发送除外)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3125131.html

大家都在问