JavaScript รองรับข้อความอีเมลหรือไม่?


146

JavaScript รองรับข้อความอีเมลหรือไม่?


38
นี่ไม่สมควรได้รับ -1
kikito

1
โปรแกรมอีเมลเป้าหมายคือ Outlook หรือไม่ ธันเดอร์เบิร์ด? GMail? Hotmail? ถูกทุกข้อ? อื่น ๆ ? โปรแกรมอีเมลที่แตกต่างกันทำให้อีเมลแตกต่างกัน
WonderWorker

1
ฉันเพิ่งเห็นว่าพวก rockettheme กำลังนับถอยหลังดังนั้นวันชั่วโมงนาทีและวินาทีและกราฟิกก็เคลื่อนไหวด้วย ... น่าอัศจรรย์ที่สุดที่เป็นไปได้ตอนนี้ ไม่แน่ใจว่าพวกเขาจะทำสิ่งนี้อย่างไร พบในไคลเอนต์อีเมล mac
ลงจอด

2
ฉันพบโดเมนและรับสิ่งนี้ - motionmailapp.com
ลงที่ดิน

3
@ ใส่ฉันเห็นสิ่งเดียวกันในอีเมลจาก WordPress ปรากฎว่าเป็นเพียง GIF ที่สร้างขึ้นแบบไดนามิกที่เริ่มนับถอยหลังเมื่อถูกดึงออกมา (และจะรีเซ็ตหลังจาก 45 วินาที - ฉันเดาว่าถ้าคุณไม่ได้คลิกผ่านภายใน 45 วินาทีคุณอาจปิดอีเมลไปแล้ว)
Lionel Rowe

คำตอบ:


49

http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients

ลูกค้าเก่าเช่น Lotus Notes, Mozilla Thunderbird, Outlook Express และ Windows Live Mail ดูเหมือนว่าจะรองรับการใช้งาน JavaScript บางประเภท ไม่มีอะไรทำ

ดูเหมือนความคิดที่ดีด้านความปลอดภัยดังนั้นฉันคาดหวังว่านี่จะเป็นคุณสมบัติที่ไม่เคยมีมาก่อนแม้แต่ในไคลเอนต์เหล่านี้


9
"Lotus Notes, Mozilla Thunderbird, Outlook Express และ Windows Live Mail ดูเหมือนจะรองรับการใช้งาน JavaScript บางประเภท" - ในสคริปต์แม่แบบข้อความไม่ใช่ในอีเมลที่ได้รับ
เควนติน

2
ว้าวลูกค้าเหล่านี้ตอนนี้ลิงก์เก่า ๆ ที่พวกเขาเคยทำพฤติกรรมกำลังจะตายไปฉันไม่สามารถยืนยันหรือปฏิเสธมันได้ หกปีต่อมาฉันจะประหลาดใจหากยังมีลูกค้าอีเมลรายเดียวที่ยังใช้งานอยู่ซึ่งมีการเปิดใช้งานการดำเนินการสคริปต์ประเภทใดประเภทหนึ่งตามวัตถุประสงค์
MatthewMartin

18

ไม่ผู้อ่านอีเมลที่พูดโดยทั่วไปจะไม่อนุญาตจาวาสคริปต์


2
gmail ในเบราว์เซอร์ chrome เป็นอย่างไร?
Nicolas S.Xu

1
@ NicolasS.Xu Gmail ลบ JavaScript ออกจากอีเมลก่อนส่งไปยังเบราว์เซอร์ ดังนั้น JS ไม่ทำงาน ฉันทดสอบ Gmail ใน Firefox 56 และ Chrome 61 นอกจากนี้ตรวจสอบรหัสในเครื่องมือเว็บมาสเตอร์รหัส JS จะถูกลบออก
Christopher K.

18

ผู้ตอบคนอื่น ๆ แนะนำว่าคำตอบคือ "ไม่"

ในทางตรงกันข้ามสิ่งที่แนบมา html อาจจะเปิดในสภาพแวดล้อมที่ใช้ Javascript

แก้ไข: มีคนแนะนำว่าฉันยังไม่ได้ตอบคำถามอย่างถูกต้องดังนั้นนี่จึงเป็นความพยายามที่สมบูรณ์ยิ่งขึ้น

สรุป: ฉันคาดหวังว่าผู้ใช้จำนวนมากหรือส่วนใหญ่ที่ได้รับอีเมลที่มีรูปแบบ html ที่มี Javascript ในตัวจะเห็นมันทำงานและทำการทดสอบเพื่อยืนยันว่านี่เป็นจริงในบางสภาพแวดล้อม แต่ Javascript จะถูกปิดกั้นสำหรับผู้ใช้บางคน

โปรโตคอล (เฉพาะ RFC2854) ระบุที่อยู่สคริปต์อย่างชัดเจน (ภายในประเภทเนื้อหาข้อความ / html) ด้วยคำสั่งที่:

นอกจากนี้การแนะนำภาษาสคริปต์และความสามารถในการโต้ตอบใน HTML 4.0 แนะนำจำนวนความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับการดำเนินการอัตโนมัติของโปรแกรมที่เขียนโดยผู้ส่ง แต่ตีความโดยผู้รับ ตัวแทนผู้ใช้ที่เรียกใช้งานสคริปต์หรือโปรแกรมดังกล่าวจะต้องระมัดระวังเป็นอย่างยิ่งเพื่อให้มั่นใจว่าซอฟต์แวร์ที่ไม่น่าเชื่อถือนั้นได้รับการดำเนินการในสภาพแวดล้อมที่ได้รับการป้องกัน

ดังนั้นโปรโตคอลจึงรองรับ Javascript แต่ตัวแทนของผู้ใช้ทำอะไร

โปรแกรมอ่านอีเมลของฉัน (เก่า) ใช้ตารางเพื่อระบุซอฟต์แวร์ตัวแสดงที่จะใช้สำหรับแต่ละประเภทการโอนเนื้อหา html ไปยังเว็บเบราว์เซอร์ที่ฉันโปรดปราน เว็บเบราว์เซอร์ปัจจุบันเกือบทั้งหมดรองรับจาวาสคริปต์ (และมีปัญหาบางอย่างคำเตือนเมื่อคุณพยายามที่จะปิด!) ตัวแทนอีเมลที่ทันสมัยรวมถึงล่าม HTML ภายในและถ้าเป็นเช่นนั้นจาวาสคริปต์จะเปิดหรือปิด? ฉันได้ตรวจสอบเอกสารเกี่ยวกับธันเดอร์เบิร์ดและพบว่าจาวาสคริปต์ดูเหมือนว่าจะเปิดตามค่าเริ่มต้น แต่สามารถปิดได้: http://codeverge.com/mozilla.support.thunderbird/simple-html-tags-reference-docume/2030160

ฉันสังเกตเห็นว่าผู้ใช้ (? หลายคน) บางคนตอนนี้เข้าถึงอีเมลของพวกเขาจากเบราว์เซอร์โดยตรง (เว็บเมลเป็นแพลตฟอร์มดังกล่าว) แทนที่จะใช้ซอฟต์แวร์อีเมลแยกต่างหาก ทุกแพลตฟอร์มดังกล่าวที่ฉันได้ทดสอบจนถึงตอนนี้จะเรียกใช้ Javascript ใด ๆ ที่ฝังอยู่ใน html ของข้อความอีเมล อย่างไรก็ตามบางสภาพแวดล้อมดังกล่าวขึ้นอยู่กับการตั้งค่าความปลอดภัยของผู้ใช้อย่าดึงลิงก์ภายนอก (Javascript หรือรูปภาพหรืออื่น ๆ ) โดยอัตโนมัติและดังนั้นจึงสามารถเรียกใช้ Javascript ภายนอกจากไฟล์ซึ่งรวมอยู่ในไฟล์แนบ สิ่งนี้จะเป็นจริงสำหรับผู้อ่านอีเมลออฟไลน์ใด ๆ บนอุปกรณ์ที่ไม่มีการเชื่อมต่ออินเทอร์เน็ตในปัจจุบัน

ข้อมูลข้างต้นใช้กับจาวาสคริปต์ที่ฝังอยู่ในส่วนข้อความหลักของเนื้อหาอีเมล เราสามารถให้ html อย่างชัดเจนว่าเป็น "ไฟล์แนบ" ซึ่งหากบันทึกแล้วเปิดขึ้นจะปรากฏในเว็บเบราว์เซอร์ซึ่ง Javascript นั้นมีโอกาสสูงมาก ดังนั้นหนึ่งอาจรวมถึงสำเนาที่สองของอีเมลที่เปิดใช้งานจาวาสคริปต์เป็นเอกสารแนบ html ที่มีข้อความ / ร่างกายหลักธรรมดาและ / หรือแท็กในข้อความหลัก / html นำผู้ใช้ไปยังสิ่งที่แนบมา

ฉันคิดถึงเรื่องนี้เพราะคนรู้จักของฉันยืนยันที่จะส่ง "บัตรอวยพรทางอีเมล" ซึ่งประกอบด้วยข้อความที่บอกให้ฉันไปยังลิงก์ที่ฉันพบว่าไม่น่าพอใจจนฉันปฏิเสธที่จะลองโหลดมันบนหลักการ . ฉันเขียนและส่งการ์ดอวยพรทางอีเมลพร้อมกราฟิกแบบอินเทอร์แอคทีฟและเพลงและแม้กระทั่งเกมโดยใช้จาวาสคริปต์ในตัว

ดังนั้นฉันขอยืนยันว่าคำตอบที่ถูกต้องคือ "ใช่" ทั้งคู่เพราะโปรโตคอลนั้นใช้สคริปต์เป็นพิเศษและด้วยเหตุผลว่าตัวแทนอีเมลทั้งหมดที่ฉันใช้เองนั้นใช้จาวาสคริปต์ในอีเมลทดสอบของฉัน


2
คุณไม่ให้รายชื่อลูกค้าที่เป็นรูปธรรมใด ๆ ที่คุณทดสอบ JS สำเร็จและรหัส JS ใด ฉันตรวจสอบการตั้งค่า Thunderbird 52.4.0 ด้วย "HTML ดั้งเดิม" และมันไม่สนใจ JS <script> document.write('test'); </script>ในอีเมลทดสอบของฉัน เหมือนกันสำหรับ Outlook สำหรับ Android 2.2.44, K-9 สำหรับ Android 5.208, Gmail webmailer (ทดสอบ 06.11.2017) และ Roundcube webmailer 0.9.5 ดังนั้นฉันจะเห็นด้วยกับผู้ที่บอกว่ามันไม่ทำงานในลูกค้า (ทันสมัย) ส่วนใหญ่ มันเป็นความจริงที่ผู้ใช้ส่วนใหญ่ใช้เว็บเมล์ แต่ด้วยเหตุผลที่ดีสิ่งเหล่านี้ดูเหมือนจะดึง JS ออกจากข้อความก่อนส่งให้เบราว์เซอร์
Christopher K.

1
เนื่องจากลิงก์ของคุณไปที่ "เอกสาร" ของธันเดอร์เบิร์ดไม่ใช่เอกสาร แต่อ้างอิงถึงคำถามที่ผู้ใช้สนับสนุนฉันค้นหาเอกสารอย่างเป็นทางการและพบสิ่งนี้: developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Releases / 3 - มันบอกว่า JS ในอีเมลหล่นในธันเดอร์เบิร์ด 3
Christopher K.

14

คำตอบสั้น ๆ

ไม่


คำตอบเชิงพรรณนา

มันขึ้นอยู่กับ. แต่อีเมลไม่รับประกันว่าจะทำงานในแบบที่คุณต้องการ ไคลเอนต์อีเมลที่แตกต่างกันจัดการ JS แตกต่างกัน ไคลเอนต์อีเมลที่ใหม่กว่าส่วนใหญ่ไม่สนับสนุนใด ๆ เนื่องจากอาจเป็นอันตรายมากในการรองรับการเรียกใช้สคริปต์ในแอปพลิเคชันเดสก์ท็อปซึ่งมีข้อมูลส่วนบุคคลของคุณมากมาย

ฉันมีกรณีการใช้งานที่ฉันต้องการใช้ JS ในอีเมล ฉันลองใช้ไคลเอนต์เว็บของ outlook และไคลเอนต์เดสก์ท็อปเช่นกันและปรากฎว่า outlook เพียงแค่ลบส่วนสคริปต์ของอีเมล HTML ของคุณ อาจมีไคลเอ็นต์อีเมลอื่นที่สนับสนุนการประมวลผล JS แต่เนื่องจากคุณไม่สามารถควบคุมไคลเอ็นต์ที่จะให้ดูอีเมลของคุณในเครื่องไคลเอ็นต์คุณไม่ควรฝังสคริปต์ใด ๆ ในอีเมล HTML

มันควรที่จะทำให้อีเมล HTML ของคุณง่ายที่สุดเท่าที่จะทำได้ไม่มี JS และ CSS อย่างน้อยที่สุดที่คุณสามารถทำได้ (เพราะอีกครั้งไคลเอนต์อีเมลที่ต่างกันก็มีการสนับสนุน CSS ที่แตกต่างกันเช่น) เช่น: ไคลเอนต์ของ Outlook แท็กปุ่มในอีเมล ฉันต้องใช้แท็กจุดยึดและ CSS บางอย่างที่ด้านบนของมันเพื่อเลียนแบบการแสดงปุ่ม


บรรทัดล่าง - ไม่ต้องพึ่งพา Javascript เมื่อทำงานกับเนื้อหาอีเมล HTML


4

คุณจะไม่ได้รับจาวาสคริปต์ที่สามารถใช้งานได้บนเซิร์ฟเวอร์และไปยังโปรแกรมรับส่งเมล แต่อีเมลสนับสนุนลิงก์คุณสามารถลิงก์ไปยังเนื้อหาของคุณภายในอีเมลได้เสมอ



2

อาจเป็นเช่นนั้น แต่ไคลเอนต์เมลจะไม่อ่านและเมลเซิร์ฟเวอร์อาจปฏิเสธ ดังนั้นทิ้งมันไว้


1

ไม่รองรับ Javascript ในอีเมล


2
นั่นไม่เป็นความจริง อย่างน้อย Outlook และ Outlook Express รองรับ Javascript ซึ่งเป็นหนึ่งในหลาย ๆ เหตุผลที่ควรหลีกเลี่ยง (สำหรับเหตุผลด้านความปลอดภัย)
PauliL

1
@PauliL: นั่นขึ้นอยู่กับการตั้งค่าโซน Sites ที่ จำกัด ของคุณ
Neil Knight

0

คุณสามารถดูอีเมลโดยใช้ JavaScript ที่ทำงานกับ Windows Live Mail แต่ไม่สามารถเพิ่ม JavaScript ในอีเมลใหม่ที่คุณต้องการส่ง JavaScript ยังใช้งานได้กับไฟล์. eml ที่บันทึกไว้ Mozilla Thunderbird เวอร์ชัน 60.7.0 ไม่สามารถดูหรือเพิ่ม JavaScript (หากคุณบันทึกไฟล์ eml ด้วย Thunderbird รหัสจะทำงานหากไฟล์นั้นโหลดด้วย Live Mail) คุณสามารถส่งอีเมลด้วย JavaScript โดยใช้โค้ด PHP เว็บไซต์อีเมลบางแห่งอาจรองรับ แต่บางเว็บไซต์ที่ฉันใช้ไม่เป็นเช่นนั้น (AOL, uk2.net, GMail)


0

ไม่มีไคลเอ็นต์อีเมลที่รองรับจาวาสคริปต์เนื่องจากความกังวลด้านความปลอดภัย

ลองส่งจดหมายพร้อมเนื้อหา html นี้

     <!DOCTYPE html>
     <html>
     <body>
     <button onclick="this.innerHTML=Date()">The time is?</button>
     </body>
     </html>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.