ฟังก์ชันจดหมายคลาสสิกของ Asp ส่งสตริงที่มีช่องว่าง

ฉันกำลังส่งอีเมลด้วยวัตถุ CDO.Message และจดหมายมาถึงโดยมีช่องว่างระหว่างอักขระ

ตัวอย่างเช่น ฉันส่งสตริงนี้:

"Lorem ipsum dolor นั่ง amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit ใน voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat ไม่มั่นใจ, sunt ใน culpa qui officia deserunt mollit anim id est laborum"

และมาถึงสิ่งนี้:

"Lorem ipsum dolor นั่ง amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit ใน volup tate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat ไม่มั่นใจ, sunt ใน culpa qui officia deserunt mollit anim id est laborum"

ตรวจสอบคำที่แข็งแกร่งเพื่อทำความเข้าใจ ทำไมถึงเกิดเรื่องนั้น?

รหัสของฉัน

        Set Mail= Server.CreateObject("CDO.Message")
        Set MailConfig = Server.CreateObject("CDO.Configuration")

        Mail.From = [email protected]

        Mail.Bcc = "[email protected]"

        Mail.Subject = "Example"  

        MailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = sendUsing
        MailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpServer
        MailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = smtpServerPort
        MailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        MailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = smtpUseSSL
        MailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = smtpConnectionTimeout
        MailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = mailUsername
        MailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mailPassword
        MailConfig.Fields.Update

        Mail.Configuration = MailConfig

        strBody = "the string"

        Mail.HTMLBody = strBody
        Mail.HTMLBodyPart.Charset = "utf-8"
        Mail.send

ช่องว่างพิเศษจะปรากฏทุกๆ 991 อักขระ ฉันเพิ่มสิ่งนี้:

Mail.HTMLBodyPart.ContentTransferEncoding = "quoted-printable"

และได้รับการแก้ไขแล้ว


person socra    schedule 28.02.2014    source แหล่งที่มา
comment
คุณช่วยแสดงรหัสหน่อยได้ไหม?   -  person John    schedule 28.02.2014
comment
ฉันพบวิธีแก้ปัญหา ขอบคุณ   -  person socra    schedule 28.02.2014
comment
@socra คุณช่วยกรุณาโพสต์วิธีแก้ปัญหาของคุณเป็นคำตอบเพื่อให้ผู้อื่นได้รับประโยชน์และถ้าคุณยอมรับมันหมายความว่าคำถามจะไม่แสดงในคิวที่ไม่ได้รับคำตอบอีกต่อไปและคุณสามารถรับตัวแทนเพื่อตอบคำถามของคุณได้ แนวทางปฏิบัตินี้ได้รับการสนับสนุนใน SO โปรดดู ฉันสามารถตอบคำถามของตัวเองได้หรือไม่   -  person user692942    schedule 01.03.2014
comment
ฉันอยากจะรู้ว่าวิธีแก้ปัญหาคืออะไร   -  person sindrem    schedule 23.11.2016


คำตอบ (1)


หากคุณไม่ส่ง HTML ในเนื้อหาอีเมล อย่าใช้ Mail.HTMLBody ให้ใช้ Mail.TextBody แทน ซึ่งเป็นตัวเลือกที่ถูกต้องเมื่อส่งข้อความล้วน Textbody เก็บตัวแบ่งบรรทัดและอักขระควบคุมอื่นๆ ที่ HTMLBody ไม่มี

ฉันประสบปัญหาที่คล้ายกันใน Outlook เมื่อแสดงข้อความ Raw ที่ส่งด้วย HTMLBody ดังนั้นฉันเชื่อว่าการเปลี่ยนแปลงง่ายๆ นี้จะแก้ไขปัญหาได้

person David    schedule 28.02.2014
comment
คุณควรพิจารณาเมื่อส่งอีเมล HTMLBody เพื่อส่ง TextBody ที่เทียบเท่ากันเพื่อความเข้ากันได้สูงสุด นอกจากนี้ ให้พิจารณาใช้ชื่อที่เป็นมิตรสำหรับคุณ From ที่อยู่ประมาณ Mail.From = """My Example"" <[email protected]>" - person user692942; 01.03.2014