function genererEmails() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var patternMap = {};
Logger.log("Starting pattern identification...");
for (var i = 1; i < data.length; i++) {
var email = data[i][3];
if (email) {
var company = data[i][2];
var firstName = data[i][5] ? data[i][5].toString().toLowerCase() : "";
var lastName = data[i][6] ? data[i][6].toString().toLowerCase() : "";
var firstInitial = firstName.charAt(0);
var lastInitial = lastName.charAt(0);
Logger.log("Checking email: " + email + " for company: " + company);
var patterns = [
firstName + "." + lastName,
firstName + lastName,
lastName + firstName,
firstName,
firstName + "_" + lastName,
lastName + "_" + firstName,
lastName,
lastName + "." + firstName,
firstInitial + "." + lastName,
firstInitial + "." + lastInitial
];
for (var k = 0; k < patterns.length; k++) {
if (email.includes(patterns[k])) {
let tempPattern;
if (k <= 7) {
tempPattern = email.replace(new RegExp(firstName, 'g'), "{first_name}").replace(new RegExp(lastName, 'g'), "{last_name}");
} else if(k === 8) {
tempPattern = email.replace(new RegExp(firstInitial, 'g'), "{first_initial}").replace(new RegExp(lastName, 'g'), "{last_name}");
} else {
tempPattern = email.replace(new RegExp(firstInitial, 'g'), "{first_initial}").replace(new RegExp(lastInitial, 'g'), "{last_initial}");
}
patternMap[company] = tempPattern;
Logger.log("Pattern identified for company " + company + ": " + tempPattern);
break;
}
}
}
}
Logger.log("Pattern identification complete. Starting email generation...");
for (var j = 1; j < data.length; j++) {
if (!data[j][3]) {
var company = data[j][2];
var firstName = data[j][5] ? data[j][5].toString().toLowerCase() : "";
var lastName = data[j][6] ? data[j][6].toString().toLowerCase() : "";
var firstInitial = firstName.charAt(0);
var lastInitial = lastName.charAt(0);
var pattern = patternMap[company];
if (pattern) {
var newEmail = pattern.replace("{last_name}", lastName)
.replace("{first_name}", firstName)
.replace("{first_initial}", firstInitial)
.replace("{last_initial}", lastInitial);
sheet.getRange(j + 1, 4).setValue(newEmail);
sheet.getRange(j + 1, 8).setValue("TRUE");
Logger.log("Generated email for " + firstName + " " + lastName + ": " + newEmail);
} else {
sheet.getRange(j + 1, 8).setValue("FALSE");
Logger.log("No pattern found for " + firstName + " " + lastName + " in company " + company);
}
} else {
sheet.getRange(j + 1, 8).setValue("FALSE");
Logger.log("Email already exists for row " + (j + 1));
}
}
Logger.log("Email generation complete.");
}