您可能會喜歡......

顯示具有 研究報告-個人研究-電腦類 標籤的文章。 顯示所有文章
顯示具有 研究報告-個人研究-電腦類 標籤的文章。 顯示所有文章

2019年8月14日 星期三

如何利用Gmail做到合併列印及批次寄送個人化郵件功能?

前情提要:這次我研究的功能主要是為了要協助學校科主任確認各位同學的出缺勤紀錄,但因適逢假期時間,在一二梯次活動中也有外校同學,如開學後再確認,會不太方便,因此,我為了顧慮到學生的隱私,花了些時間研究了Gmail傳說中的批次寄送個人化郵件功能,說明如下:

1. 首先,請先在Gmail中,利用我們熟悉的新增郵件功能,將要傳送的內容底稿事先打好。


2. 再來,安裝兩種可以批次寄送郵件的外掛程式。
(不同的應用程式他在郵件中的語法不同,不過同樣是免費版的情況下皆只能夠傳送50封郵件/天,除非付費才能解鎖其流量限制)
Mail Merge with Attachments

Yet Another Mail Merge

3. 回到試算表中,我這次使用的是上者,因為在信件中我要分別附上所有同學的個人紀錄Word檔案,不過原則上,不管是哪款擴充功能,內容都大同小異,僅在帶入細節時語法不同而已,兩款都可以試試哦!


(因個資問題,故移除說明圖片。)

相關使用說明如下:

1. 開啟新的一份試算表。
2. 啟動Mail Merge with Attachments
3. 點選外掛程式中的Mail Merge With Attachments,下拉至Create Merge Template。



4. 選取完之後,會建立如下的空白表單。上方藍色區域為待填入個人表單區域內容,其中圖中六個欄位建議不要更動,不過可依自己的需求增加其欄位,以符合更個人化的資訊。


5. 插入附件:
在選單中點選加入附件即可,依自己的需求加入Google雲端硬碟檔案,或電腦檔案,或加入Google雲端硬碟清單(資料夾用),如果資料量大的話,建議可以在後台先在雲端硬碟上傳您要提供的檔案,以便後續快速處理。

6.選擇完畢後點選直接匯入。


7. 匯入完畢後,可以在"檔案附件"的頁面當中看到您剛剛所匯入的所有檔案。


8. 回到主頁面,鍵入您的收件者清單及您要分享的附件。


9. 確認基本資料沒有問題後,回到選單,點下Configure Mail Merge按鈕。

10. 再鍵入一次基本資料。


11. 在下方的Create Email Template的頁籤當中,輸入您要傳給收件者的信件內容。


或是,直接匯入您在Gmail當中準備好的範本(草稿)。


以本例中,您需要使用合併欄位的地方,請使用雙大括號{{Column name}}表示
請注意:該欄位建議使用全英文,經實測後,無法使用數字欄位。

12. 確定以上都沒有問題之後,可以先將範本寄到自己的信箱做測試,看是不是您想要傳達的內容。


13. 確定沒問題,再點選一次Run Mail Merge指令即可傳給您的收件者囉!

2017年6月1日 星期四

Label VB語法

var label_tree= new Object();

function tn(tag)
{
return tag.substring(1,tag.length-1);
}

function build_node(tree,idx,cnt)
{
if(!tree[idx[0]]){
tree[idx[0]]=new Object();
tree[idx[0]]['_cnt']=0;
tree[idx[0]]['_item']=new Array();
}
tree[idx[0]]['_cnt'] = parseInt(tree[idx[0]]['_cnt']) + parseInt(cnt);
if(idx.length==1){
return tree[idx[0]];
}
return build_node(tree[idx[0]],idx.slice(1),cnt);
}
function add_label(_name,_cnt,_url,_dir)
{
var e1 = new RegExp("\\[(.+?)\\]","g");
var e = new RegExp("\\[(.+)\\]","g");
var m = _name.match(e);
var tag = _name;
var obj=new Object();
obj['tag']=_name;
obj['cnt']=_cnt;
obj['dir']=_dir;
obj['url']=_url;
if(m){
obj['tag']= _name.substring(m[0].length,_name.length);
var m1 = _name.match(e1);
if(m1){
node=build_node(label_tree,m1,_cnt);
if(node){
node['_item'].push(obj);
}
}
}
else{
if(!label_tree['_item']){
label_tree['_item']=new Array();
}
label_tree['_item'].push(obj);
}
}
function menu_exp(id)
{
var ul=document.getElementById("ul_"+id);
var li=document.getElementById("li_"+id);
if (ul.style.display=="none"){
ul.style.display="block"
li.style.backgroundImage="url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfsQSCKIJXEN4RuEBmkJlORaXHdQGSp9KKG4vODY2v-Z6p4-xLBIxNh_7V1WITqJ8Y5Yio_mXYppUHdwt8m9A4_yH9Fx07T-t6n7rxnzMVNlODcOviDx4ouC2PRPOad7927tkl3agvJX8/)"
}
else {
ul.style.display="none"
li.style.backgroundImage="url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijn1_PrUCzuf_lINx6T3tcqIFBo_4v53_w-_xiiReIhA9L3y5jK02eP7JlgrhZ-X48XX_C_hpNst1X8GD0rsa55rVmKpt6poTZnScApq5P6REsodKThVVhGYJcAhF2zwqhg3Y80IdLUPY/)"
}
}
function draw_obj(obj)
{
document.write("<li style='padding-left: 0px>'");
document.write("<img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5U6QOd0bHmH1PSaah-TpVGdI95aJf13U-14upMplW7WSMlNu0t59FtBZgko154n4BNqianeNv7XECt8bb0nkFge38fmyn0fvjL_0ugFfsPP8zIMNynUunR0FaWXl95K6qrDTwJ32KWPw/s1600/icon-yellow-bullet.png' /><a dir='"+obj['dir']+"' href='"+obj['url']+"'>"+obj['tag']+"</a>");
document.write("<span dir='"+obj['dir']+"'>("+obj['cnt']+")</span>");
document.write("</li>\n");
}
function draw_tree(tree)
{
for(var tag in tree){
if(tag!='_item'&& tag!='_cnt'){
var rid = Math.random();
document.write("<li class=submenu id=li_"+rid+" onclick=menu_exp('"+rid+"'); style='font-weight:bold;padding-left: 20px;background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijn1_PrUCzuf_lINx6T3tcqIFBo_4v53_w-_xiiReIhA9L3y5jK02eP7JlgrhZ-X48XX_C_hpNst1X8GD0rsa55rVmKpt6poTZnScApq5P6REsodKThVVhGYJcAhF2zwqhg3Y80IdLUPY/) no-repeat left 0px;cursor: pointer'>");
document.write(tn(tag));
document.write("("+tree[tag]['_cnt']+")");
document.write("</li>");
document.write("<ul id=ul_"+rid+" style='display:none;padding-left: 20px'>");
draw_tree(tree[tag]);
document.write("</ul>\n");
}
}
if(tree['_item']){
for(var i=0;i < tree['_item'].length;i++){
draw_obj(tree['_item'][i]);
}
}
}
</script>
<script>
add_label('[he][test]test1','1','http://uclassroom.blogspot.tw/search/label/%5Bhe%5D%5Btest%5Dtest1','ltr');
</script>
<script>
add_label('[my][test]test3','1','http://uclassroom.blogspot.tw/search/label/%5Bmy%5D%5Btest%5Dtest3','ltr');
</script>
<script>
add_label('[my][test]test4','1','http://uclassroom.blogspot.tw/search/label/%5Bmy%5D%5Btest%5Dtest4','ltr');
</script>
<script>
add_label('[you][test]test2','1','http://uclassroom.blogspot.tw/search/label/%5Byou%5D%5Btest%5Dtest2','ltr');
</script>
<ul>
<script>
draw_tree(label_tree);