Fungsi email klasik Asp mengirimkan string dengan spasi kosong

Saya mengirim email dengan objek CDO.Message dan email tiba dengan spasi kosong antar karakter.

Misalnya, saya mengirimkan string ini:

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

Dan tiba ini:

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exeritation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in ditegur dalam volup tate velit esse cillum dolore eu fugiat nulla pariatur. Kecuali sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

Periksa kata yang kuat untuk memahami. Mengapa hal itu terjadi?

Kode saya

        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

Spasi ekstra muncul setiap 991 karakter. Saya menambahkan ini:

Mail.HTMLBodyPart.ContentTransferEncoding = "quoted-printable"

Dan telah terpecahkan.


person socra    schedule 28.02.2014    source sumber
comment
Bisakah Anda menunjukkan beberapa kode?   -  person John    schedule 28.02.2014
comment
Saya menemukan solusinya. Terima kasih   -  person socra    schedule 28.02.2014
comment
@socra Bisakah Anda memposting solusi Anda sebagai jawaban sehingga orang lain dapat memperoleh manfaat, ditambah lagi jika Anda menerimanya berarti pertanyaan tersebut tidak akan lagi muncul dalam antrean yang belum terjawab dan Anda bisa mendapatkan perwakilan untuk menjawab pertanyaan Anda. Praktik ini dianjurkan di SO, lihat Dapatkah saya menjawab pertanyaan saya sendiri?   -  person user692942    schedule 01.03.2014
comment
Saya ingin tahu apa solusinya.   -  person sindrem    schedule 23.11.2016


Jawaban (1)


Jika Anda tidak mengirim HTML di badan email, jangan gunakan Mail.HTMLBody, melainkan gunakan Mail.TextBody yang merupakan pilihan tepat saat mengirim teks murni. Textbody mempertahankan jeda baris dan karakter kontrol lainnya yang HTMLBody tidak.

Saya pernah mengalami masalah serupa di Outlook saat menampilkan teks mentah yang dikirim dengan HTMLBody, jadi saya yakin perubahan sederhana ini akan memperbaikinya.

person David    schedule 28.02.2014
comment
Anda juga harus mempertimbangkan saat mengirim email HTMLBody untuk juga mengirim email yang setara dengan TextBody untuk kompatibilitas maksimum. Pertimbangkan juga untuk menggunakan nama Ramah untuk alamat From Anda seperti Mail.From = """My Example"" <[email protected]>". - person user692942; 01.03.2014