@@ -2478,39 +2478,55 @@ var body_mdl = doc_mdl.getBody();
24782478
24792479### Mail Merge ###
24802480
2481- #### Append Subject and Body Properties for Object in Array of Objects ####
2481+ #### Append Subject and Body Properties for Array of Objects ####
24822482
24832483``` javascript
2484- function appendSubjBodyForArrObj (arrObj , subj , body ) {
2484+ /**
2485+ * Returns an array of objects. Subject and Body properties are appended to each object.
2486+ *
2487+ * @param {Object[]} arrObj
2488+ * @param {string} subj
2489+ * @param {string} body
2490+ * @param {string} delim
2491+ * @returns {Object[]}
2492+ */
2493+
2494+ function appendSubjBodyForArrObj (arrObj , subj , body , delim ) {
24852495 for (var i = 0 ; i < arrObj .length ; i++ ) {
2486- var obj = arrObj[i];
2487- var _body = body;
2488- var _subj = subj;
2496+ var obj = arrObj[i];
24892497 for (var prop in obj) {
2490- var search = " % " + prop + " % "
2491- if (_body .indexOf (search) !== - 1 ) {
2492- _body = _body .replace (search, obj[prop]);
2498+ var search = delim + prop + delim;
2499+ if (body .indexOf (search) !== - 1 ) {
2500+ body = body .replace (search, obj[prop]);
24932501 }
2494- if (_subj .indexOf (search) !== - 1 ) {
2495- _subj = _subj .replace (search, obj[prop]);
2502+ if (subj .indexOf (search) !== - 1 ) {
2503+ subj = subj .replace (search, obj[prop]);
24962504 }
24972505 }
2498- obj .Subject = _subj ;
2499- obj .Body = _body ;
2506+ obj .Subject = subj ;
2507+ obj .Body = body ;
25002508 }
25012509 return arrObj;
25022510}
25032511
25042512var sheet_aasbfao = SpreadsheetApp .getActiveSpreadsheet ().getSheetByName (" Sheet2" );
25052513var arrObj_asbfao = arrObjFromSheet (sheet_aasbfao, 2 );
2506- var subj_asbfao = " Classroom update for %First% %Last%"
2514+ var subj_asbfao = " Classroom update for %First% %Last%" ;
25072515var body_asbfao = " <p>%First% %Last% is in %Homeroom%'s this fall!</p>" ;
2508- Logger .log (appendSubjBodyForArrObj (arrObj_asbfao, subj_asbfao, body_asbfao)); // [{subj=Classroom update for Arienne Garret, body =<p>Arienne Garret is in Muhsina's this fall!</p>}, Last=Garret, Email=agarret@example.com, Homeroom=Muhsina, Grade=6.0, First= Arienne, ...]
2516+ Logger .log (appendSubjBodyForArrObj (arrObj_asbfao, subj_asbfao, body_asbfao, " % " )); // [{Last=Garret, Email=agarret@example.com, Homeroom=Muhsina, Grade=6.0, First=Arienne, Body =<p>Arienne Garret is in Muhsina's this fall!</p>, Subject=Classroom update for Arienne Garret} ...]
25092517```
25102518
25112519#### Run Mail Merge for Array of Objects ####
25122520
25132521``` javascript
2522+ /**
2523+ * Sends and email for each object in an array of objects.
2524+ * Properties Email, Subject and Body are used.
2525+ *
2526+ * @requires appendSubjBodyForArrObj()
2527+ * @param {Object[]} arrObj
2528+ */
2529+
25142530function runMailMergeForArrObj (arrObj ) {
25152531 for (var i = 0 ; i < arrObj .length ; i++ ) {
25162532 var obj = arrObj[i];
@@ -2524,7 +2540,7 @@ function runMailMergeForArrObj(arrObj) {
25242540
25252541var sheet_rmmfao = SpreadsheetApp .getActiveSpreadsheet ().getSheetByName (" Sheet2" );
25262542var arrObj_rmmfao = arrObjFromSheet (sheet_rmmfao, 2 );
2527- var subj_rmmfao = " Classroom update for %First% %Last%"
2543+ var subj_rmmfao = " Classroom update for %First% %Last%" ;
25282544var body_rmmfao = " <p>%First% %Last% is in %Homeroom%'s this fall!</p>" ;
25292545arrObj_rmmfao = appendSubjBodyForArrObj (arrObj_rmmfao, subj_rmmfao, body_rmmfao);
25302546runMailMergeForArrObj (arrObj_rmmfao);
0 commit comments