# -*- coding: utf-8 -*- import urllib2, urllib, sys,os,re,requests,time IS_SENT_AT_20201112 = True CISCO="""1,771711,297603 2,287037,800488 3,266693,811261 4,202466,357681 5,787624,657835 6,766030,378166 7,575763,409655 8,480695,761059 9,132169,681839 10,202220,585824 11,873922,439895 12,746925,263273 13,215445,841343 14,394681,150109 15,664495,867404 16,306617,197165 17,297777,557392 18,511324,836380 19,608840,135131 20,769838,167150 21,835354,631833 22,855372,434646 23,315277,293353 24,397475,583443 25,316259,866057 26,255388,238796 27,861028,852069 28,696449,824430 29,485699,175338 30,660797,606644 31,329180,836393 32,387636,398923 33,673071,854234 34,320612,208646 35,357692,538031 36,482139,266437 37,296739,599307 38,684323,865374 39,196425,115022 40,673293,829529 41,290925,332942 42,627496,166102 43,147466,431745 44,654349,459141 45,642111,225282 46,887812,402589 47,607684,153304 48,685794,647285 49,721799,934534 50,347867,223050 51,701826,356476 52,480311,905447 53,858321,309581 54,138616,421390 55,305157,208538 56,857623,771123 57,431569,338030 58,878523,426148 59,828657,921711 60,893122,624564 61,589609,863829 62,713161,498804 63,691454,502492 64,535098,641770 65,480586,251916 66,588777,671407 67,505572,523304 68,318304,498323 69,122095,326681 70,725502,411176 71,909297,666008 72,515088,825909 73,212955,894870 74,844854,209669 75,420437,302506 76,182263,912699 77,589448,197581 78,582094,510117 79,849856,236066 80,652708,713975 81,353849,473996 82,711169,152519 83,506629,228377 84,863386,909614 85,727697,552053 86,221212,392197 87,152686,255850 88,451602,673426 89,443829,235088 90,525949,767398 91,183202,130176 92,807539,871683 93,384070,199351 94,461528,621640 95,103671,121288 96,920944,289449 97,637066,519159 98,584748,405400 99,468243,706370 100,704017,817387 101,769915,528502 102,681454,348844 103,505567,467308 104,699781,376082 105,300243,881960 106,427988,235993 107,161960,587612 108,540599,821868 109,640263,516023 110,795028,690090 111,569741,867304 112,807264,379793 113,474721,740487 114,560543,459770 115,114227,719069 116,408868,463877 117,428336,330947 118,191309,777655 119,176334,376867 120,347678,446775 121,831650,714229 122,767734,764236 123,729970,202374 124,249151,609430 125,357940,161966 126,541082,966631 127,148133,874646 128,554222,759044 129,735038,144554 130,849293,440449 131,875232,244489 132,307142,170415 133,158639,178073 134,579654,374539 135,571930,716150 136,764050,511974 137,397405,494577 138,539861,117355 139,173441,182594 140,214280,647650 141,191819,836425 142,579153,312859 143,327901,633448 144,469409,217298 145,288588,547837 146,253130,759526 147,978813,148351 148,490407,708117 149,343898,274960 150,711844,132955 151,301754,130599 152,723979,237262 153,513613,321480 154,836384,505296 155,414965,633057 156,626229,785139 157,748256,722910 158,853622,691537 159,528607,681469 160,668262,860959 161,585434,820711 162,870252,166556 163,729345,323038 164,865431,525784 165,209825,280896 166,163325,417764 167,167096,349787 168,265022,558105 169,682139,425549 170,491237,395757 171,819332,491768 172,760107,720062 173,707425,501691 174,567705,877138 175,910865,588742 176,803940,632656 177,900322,272040 178,762874,503180 179,224837,718909 180,580953,533451 181,571149,383838 182,732840,490536 183,344550,636961 184,518415,375663 185,440467,539264 186,809207,391866 187,293917,787238 188,461457,703577 189,758709,751673 190,553195,140173 191,795062,216407 192,889314,911435 193,768431,278254 194,469620,387463 195,451390,381294 196,706631,817422 197,265266,785044 198,764454,284714 199,478507,209412 200,840900,194452 201,398777,160612 202,449153,370187 203,547571,341631 204,777451,124145 205,439959,557886 206,307065,114166 207,513664,844094 208,308830,530663 209,650430,906807 210,778250,366933 211,753660,853785 212,266704,663735 213,444840,251223 214,721721,313929 215,667309,804889 216,619860,555440 217,356757,802976 218,243697,363194 219,487414,857274 220,759392,238219 221,110518,446829 222,722744,799351 223,440579,434555 224,940854,623740 225,316805,513358 226,463077,607772 227,728028,550598 228,137558,711753 229,205137,637804 230,310256,446457 231,369442,447744 232,559251,916494 233,366487,640335 234,499190,330682 235,749614,305339 236,857878,622842 237,638069,107230 238,843793,719729 239,831319,679885 240,762252,521094 241,106585,281104 242,584391,468407 243,444008,679310 244,610069,161612 245,584738,367843 246,641509,721643 247,390383,106625 248,750306,214668 249,680071,812300 250,828564,569840 251,559115,209270 252,426832,144695 253,127600,137037 254,475724,673762 255,531994,191688 256,649149,671141 257,126377,190808 258,727945,424889 259,408370,553273 260,245780,431554 261,186727,822748 262,372411,611364 263,387102,457179 264,557107,135520 265,387296,857688 266,239527,280825 267,646670,521254 268,580302,512221 269,940758,641896 270,681268,836076 271,817470,701462 272,685845,704788 273,151432,788726 274,130246,746717 275,326095,589726 276,164416,337631 277,537127,824892 278,494276,178837 279,629655,918149 280,851802,254821 281,744971,168327 282,900330,384816 283,599888,262655 284,382943,639200 285,345393,251860 286,142085,630446 287,572981,454467 288,488034,651910 289,792379,246713 290,329123,230000 291,113333,879181 292,573880,731672 293,113676,732609 294,675957,580892 295,776098,326632 296,874002,161092 297,438175,639654 298,602944,674735 299,879892,429008 300,546170,174627""" ary_CISCO = CISCO.split("\n") API_URL = "https://edm.aiacademy.tw/tools/sendmail/tech2021_aiacademy_tw_send_email.php" s = """ Hi {name} 您好

本次會議線上票以 Cisco Webex https://www.webex.com/zh/downloads.html 進行線上直播,以下為收看的操作說明。

議程將於 09:00 開始,線上直播於上午 08:45 即可進入收看,建議您提早進入會議室先行測試,以利觀看。

1. 請見信件下方資訊,找到您的直播連結。
2. 請注意!兩天的直播連結並不一樣,請務必選擇正確日期的直播連結,並點擊進入。
3. 會議密碼設定為會被自動填入,您無須理會;但是如果您發現會議密碼未被自動填入,則請您自行填入會議密碼。
4. 您亦可在信件下方,找到您這兩天個人所對應的「註冊ID」,並且將其填入。
5. 接著,您即可點擊加入會議。
6. 系統會詢問您是否直接以瀏覽器觀看?您亦可選擇下載軟體安裝後收看。
7. 您如果按照網頁上的提示進行步驟操作,應該就可以順利地看到畫面,以及聽到聲音。

敬請參考:如何安裝 Cisco Webex Web 應用程式 https://help.webex.com/zh-tw/n1pxgbz/Cisco-Webex-Web-App-Version-39-8

11/13 第一日線上票連結
* 第一日直播連結
https://klickklack.webex.com/klickklack/onstage/g.php?MTID=e69a6796a58f1bbb0df7574fee49619d0 (若點擊連結失效,請手動複製連結,貼於瀏覽器 Safari / Chrome / IE / Edge 中,謝謝!)
* 註冊ID {ID1}
* 會議密碼 y9GwqZUx3S4 (網址應會自動填入,若否,請複製此會議密碼 - 當日每個人的會議密碼是同樣的,惟註冊ID不一樣)

11/14 第二日線上票連結
* 第二日直播連結
https://klickklack.webex.com/klickklack/onstage/g.php?MTID=ece466ce9a854962bac0c88d815d8913e (若點擊連結失效,請手動複製連結,貼於瀏覽器 Safari / Chrome / IE / Edge 中,謝謝!)
* 註冊ID {ID2}
* 會議密碼 W6yrujiYM35 (網址應會自動填入,若否,請複製此會議密碼 - 當日每個人的會議密碼是同樣的,惟註冊ID不一樣)

連結及註冊 ID 資訊為您專屬,同時僅只有一個裝置能夠收視,請勿分享給別人。
當日問題反應 (Line社群,可預先加入) https://line.me/ti/g2/_sFoX7N51mG6AyRcC8j3KA (若點擊連結失效,請手動複製連結,貼於瀏覽器 Safari / Chrome / IE / Edge 中,謝謝!)


2020 台灣人工智慧年會 11/13 Day1 (五)

連結 https://klickklack.webex.com/klickklack/onstage/g.php?MTID=e69a6796a58f1bbb0df7574fee49619d0

(若點擊連結失效,請手動複製連結,貼於瀏覽器 Safari / Chrome / IE / Edge 中,謝謝!)

活動密碼 (通常進入上方連結會自動填入) y9GwqZUx3S4

點入連結,填入個人專屬的「註冊ID」,即可開始收視,請留意第一、二日的資訊並不一樣。

2020 台灣人工智慧年會 11/14 Day2 (六)

連結 https://klickklack.webex.com/klickklack/onstage/g.php?MTID=ece466ce9a854962bac0c88d815d8913e

(若點擊連結失效,請手動複製連結,貼於瀏覽器 Safari / Chrome / IE / Edge 中,謝謝!)

會議密碼 (通常進入上方連結會自動填入) W6yrujiYM35

點入連結,填入個人專屬的「註冊ID」,即可開始收視,請留意第一、二日的資訊並不一樣。

R0 議程

https://tech2021.aiacademy.tw/agenda/
若本信連結點擊不能運作,請手動複製連結,貼於瀏覽器 Safari / Chrome / IE / Edge 中,謝謝!

PS: 有線上票資格者,*通常*不會來到現場。若您昨天有收到主旨為『2020 AI Academy 台灣人工智慧年會【行前】通知』,請忽略並且勿白跑一趟到現場,謝謝!
""" #with open('batch_sendmail_for_online_data.test.php', 'r') as f: with open('batch_sendmail_for_online_data.php', 'r') as f: users = f.read() ary_users = users.split("\n") for i,_ in enumerate(ary_users): if '@' not in _: continue #print 'i', i;continue;#debug if IS_SENT_AT_20201112: if i<179: continue; row_cisco = ary_CISCO[i-1].split(',') ID1 = row_cisco[1] ID2 = row_cisco[2] _ = _.split("`") NAME = _[0] ary_useremail = _[1].split(",") useremail = [ary_useremail[0]] if len(ary_useremail)>=2 and ('@' in ary_useremail[1]): useremail += [ary_useremail[1]] if len(ary_useremail)>=3 and ('@' in ary_useremail[2]): useremail += [ary_useremail[2]] if len(ary_useremail)>=4 and ('@' in ary_useremail[3]): useremail += [ary_useremail[3]] if len(ary_useremail)>=5 and ('@' in ary_useremail[4]): useremail += [ary_useremail[4]] useremail += ['tech2021online@sted.tw'] useremail = ",".join(useremail) post_content = s.replace('{ID1}', ID1).replace('{ID2}', ID2).replace('{name}', NAME) subj = '🎉 2020 台灣人工智慧年會 【線上票】報名者行前通知 ('+ID1+','+ID2+')' post_data = {'to' : useremail, 'post_title': subj, 'post_content':post_content, 'sender':'tech2021@aiacademy.tw'} # debug START print ID1, ID2, NAME, '#', useremail #continue; # debug END #post_data = urllib.urlencode(post_data) #req = urllib2.Request(API_URL, data=post_data) #res = urllib2.urlopen(req).read() #print res res = requests.post(API_URL, data=post_data) print res.text, subj, useremail time.sleep(2)