ฉันกำลังประสบปัญหากับระบบ NAGIOS ที่ส่งอีเมลไปยังบริการอีเมลถึง SMS ยอดนิยม บริการ email-to-SMS จะรับอีเมลพร้อมข้อความในSubject:
บรรทัดและส่งไปยังหมายเลขโทรศัพท์มือถือที่เข้ารหัสในTo:
ฟิลด์ จนถึงตอนนี้ดีมาก น่าเศร้าที่ sendmail (และ postfix ก่อนที่มันจะ) ดูเหมือนจะแทรก CRLF เปล่าลงไป (จำเป็นต้องยาว) Subject:
สายและที่ก่อให้เกิดข้อความ SMS ของฉันที่จะถูกตัดทอนที่ CRLF ถ้าหากSubject:
บรรทัดมีมากกว่าหนึ่งทวิภาคที่ผ่านมาเปล่า CRLF
ฉันมั่นใจว่าข้อความถูกสร้างขึ้นอย่างถูกต้อง แต่เพื่อให้แน่ใจว่านี่คือฉันสร้างข้อความทดสอบที่น่าเบื่ออย่างสมบูรณ์ให้กับตัวเองด้วยSubject:
สายยาว:
echo "foo" | mail -s "1234567 101234567 201234567 301234567 401234567 501234567 601234567 701234567 801234567 90123456789" reaper@teaparty.net
โปรดทราบว่าไม่มีเครื่องหมายทวิภาคเพิ่มเติมในSubject:
บรรทัดนี้ สิ่งที่ฉันทำที่นี่แสดงให้เห็นว่ามีการแทรก CRLF พิเศษไว้บนเส้นลวด นี่คือผลลัพธ์ของsudo ngrep -x port 25
:
44 61 74 65 3a 20 46 72 69 2c 20 33 31 20 4d 61 Date: Fri, 31 Ma
79 20 32 30 31 33 20 31 30 3a 34 33 3a 35 35 20 y 2013 10:43:55
2b 30 31 30 30 0d 0a 54 6f 3a 20 72 65 61 70 65 +0100..To: reape
72 40 74 65 61 70 61 72 74 79 2e 6e 65 74 0d 0a r@teaparty.net..
53 75 62 6a 65 63 74 3a 20 31 32 33 34 35 36 37 Subject: 1234567
20 31 30 31 32 33 34 35 36 37 20 32 30 31 32 33 101234567 20123
34 35 36 37 20 33 30 31 32 33 34 35 36 37 20 34 4567 301234567 4
30 31 32 33 34 35 36 37 20 35 30 31 32 33 34 35 01234567 5012345
36 37 0d 0a 20 36 30 31 32 33 34 35 36 37 20 37 67.. 601234567 7
30 31 32 33 34 35 36 37 20 38 30 31 32 33 34 35 01234567 8012345
36 37 20 39 30 31 32 33 34 35 36 37 38 39 0d 0a 67 90123456789..
55 73 65 72 2d 41 67 65 6e 74 3a 20 48 65 69 72 User-Agent: Heir
6c 6f 6f 6d 20 6d 61 69 6c 78 20 31 32 2e 34 20 loom mailx 12.4
37 2f 32 39 2f 30 38 0d 0a 4d 49 4d 45 2d 56 65 7/29/08..MIME-Ve
72 73 69 6f 6e 3a 20 31 2e 30 0d 0a 43 6f 6e 74 rsion: 1.0..Cont
65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 ent-Type: text/p
6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 75 73 lain; charset=us
ประมาณครึ่งทาง (ทำเครื่องหมายด้วยตัวหนา + ตัวเอียง) ระหว่าง501234567
และ601234567
ในSubject:
ส่วนหัวดั้งเดิมคุณสามารถเห็น CRLF ที่ถูกแทรก ( 0x0d 0x0a
ในการถ่ายโอนข้อมูลฐานสิบหกด้านซ้าย..
บนข้อความธรรมดาด้านขวา)
MTA ที่ได้รับดูเหมือนจะมีความสุขที่จะทำการโพสต์สิ่งนี้และเมื่อฉันดูจดหมายที่เก็บไว้บนแผ่นดิสก์เมื่อสิ้นสุดการรับฉันเห็นเฉพาะ LF (0x0a) ในบรรทัดหัวเรื่อง: และบรรทัดจะถูกวิเคราะห์อย่างถูกต้องและอยู่ในนั้น alpine
โดยครบถ้วนเช่น อย่างไรก็ตาม CRLF อยู่ในสายและระหว่างฉันกับผู้สนับสนุนทางอีเมลถึง SMS ที่ยอดเยี่ยมเราได้พิสูจน์แล้วว่าสิ่งเหล่านี้เป็นสาเหตุของปัญหา
ดังนั้นคำถามของฉันคือ: มันถูกต้องตามกฎหมายหรือไม่สำหรับ MTA ที่จะแทรก CRLF เปล่า ๆ บนสาย?
หากเป็นเช่นนั้นและฉันสามารถพิสูจน์ได้ว่านั่นเป็นปัญหาของเฮ้าส์เมลเป็น SMS เพราะพวกเขาทนไม่ได้ หากไม่ใช่หรือเป็น แต่ฉันไม่สามารถพิสูจน์ได้มันจะกลายเป็นปัญหาของฉันดังนั้นคำตอบที่มีการอ้างอิงจะมีประโยชน์มากที่สุด
แก้ไข : ตอนนี้ผมสามารถมาทำความสะอาดที่บริการอีเมลการส่ง SMS ในคำถามคือKapow เมื่อปัญหาเหล่านี้ได้รับการอธิบายพวกเขาพวกมันก็ทำงานกับฉันเพื่อพัฒนาและทดสอบการแก้ไขและปรับใช้การแก้ไข หัวเรื่องที่มีความยาวของฉันที่มีเครื่องหมายโคลอนในตอนนี้ได้รับการถ่ายทอดอย่างถูกต้องใน SMSes โดยปกติฉันไม่ได้ทรัมเป็ตแต่ละ บริษัท โดยเฉพาะอย่างยิ่งไม่ได้อยู่ใน SF แต่ฉันคิดว่ามันควรค่าที่จะทราบว่า kapow ทำสิ่งที่ถูกต้อง (ข้อจำกัดความรับผิดชอบ: ฉันไม่มีส่วนเกี่ยวข้องกับ kapow ยกเว้นในฐานะลูกค้าที่ชำระเงินซึ่งมีความสุขกับวิธีที่พวกเขาจัดการกับปัญหาของเขา)