Javascript google Gmail/电子邮件地址的数据调节

Javascript google Gmail/电子邮件地址的数据调节,javascript,google-apps-script,gmail,gmail-api,Javascript,Google Apps Script,Gmail,Gmail Api,我正在尝试为gmail制作过滤器,我需要将邮件发送到电子邮件。 问题是,电子邮件的“收件人”行中的电子邮件可能有许多不同的格式。我想看看是否有一种更简单的方法来统一电子邮件的格式。我只是想解释一下我能找到并处理的每一个案例 function getTo(email) { // Logs the To lines of up to the first 1-500 emails in your Inbox var threads = GmailApp.getInboxThreads(0, 75)

我正在尝试为gmail制作过滤器,我需要将邮件发送到电子邮件。 问题是,电子邮件的“收件人”行中的电子邮件可能有许多不同的格式。我想看看是否有一种更简单的方法来统一电子邮件的格式。我只是想解释一下我能找到并处理的每一个案例

function getTo(email) { 
// Logs the To lines of up to the first 1-500 emails in your Inbox 
var threads = GmailApp.getInboxThreads(0, 75);
for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) {
        var emailto = messages[j].getTo();
        //runs the .to emails through the data conditioning function
        //emailprocess(email,emailto)
        }
        Logger.log(emailto);
    }
}



function main () {
var email = Session.getActiveUser().getEmail();
Logger.log(email);
getTo(email)
// createToFilte(toAddress, labelName)
}


function emailprocess(email,emailto){
var emailto = emailto.toLowerCase();
        switch (emailto) {
            case email:
                label = 0;
                break;
            case "john doe <johndoe@gmail.com>":
                label = 0;
                break;
            case "<johndoe@gmail.com>":
                label = 0 ;
                break;
            default:
                label = emailto.replace('johndoe+', '');
                label = label.replace("@gmail.com","")
                break;
        }
}
函数getTo(电子邮件){
//记录收件箱中最多前1-500封电子邮件的至行
var threads=GmailApp.getInboxThreads(0,75);
对于(var i=0;i
电子邮件可以采用多种不同的格式,以下是一些:

  • 无名氏johndoe@gmail.com>
  • johndoe@gmail.com
  • johndoe@gmail.com , janedoe@gmail.com
  • 约翰多+65@gmail.com
可能只会多一点。 任何帮助都会很好。我也是最好的程序员,所以任何使这个更流线型的方法都是很好的

解决方案:

function getTo(email) {
var emailregex = /([a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+)/gm  
var threads = GmailApp.getInboxThreads(0, 500); // Logs the To lines of up   to the first 1-500 emails in your Inbox 
for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) {
        var emailto = messages[j].getTo()
        var emailto = emailto.toLowerCase();
        //Logger.log(emailto);
        emailto = emailto.match(emailregex); //runs the .to emails through    the data conditioning
      Logger.log(emailto);
      if(emailto != null){
        for (var k = 0; k < emailto.length; k++) {
            if (emailto[k].indexOf("+") > -1) {
                var labelto = emailto[k].slice(emailto[k].indexOf("+") + 1,       emailto[k].indexOf("@"));
                createToFilter(emailto[k], labelto)
                Logger.log(emailto[k]);
                Logger.log(labelto);
            }

        }
      }


    }

}
}
函数getTo(电子邮件){
var emailregex=/([a-zA-Z0-9-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+])/gm
var threads=GmailApp.getInboxThreads(0500);//记录收件箱中最多前1-500封电子邮件的收件人行
对于(var i=0;i-1){
var labelto=emailto[k].slice(emailto[k].indexOf(“+”)+1,emailto[k].indexOf(“@”);
createToFilter(emailto[k],labelto)
Logger.log(emailto[k]);
Logger.log(labelto);
}
}
}
}
}
}

您可以尝试使用电子邮件正则表达式(有很多),下面是一个示例:

function getTo(email) { 
var emailregex =  /([a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+)/gm
// Logs the To lines of up to the first 1-500 emails in your Inbox 
var threads = GmailApp.getInboxThreads(0, 75);
for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) {
        var emailto = messages[j].getTo().match(emailregex);
        //runs the .to emails through the data conditioning function
        //emailprocess(email,emailto)
        }
        Logger.log(emailto);
    }
}
函数getTo(电子邮件){
var emailregex=/([a-zA-Z0-9-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+])/gm
//记录收件箱中最多前1-500封电子邮件的至行
var threads=GmailApp.getInboxThreads(0,75);
对于(var i=0;i
非常感谢,我能够让它与您的正则表达式一起工作。再次感谢你。这使我免于学习正则表达式。