Sample code for 30+ languages & platforms
DataFlex

Force Quoted-Printable Encoding for Email

See more Email Object Examples

Demonstrates how to force the quoted-printable encoding for email.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Variant vEmail
    Handle hoEmail
    Handle hoMailman
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End

    Set ComSubject Of hoEmail To "test"
    Set ComFrom Of hoEmail To "bob@example.com"
    Get ComAddTo Of hoEmail "Mary" "mary@example.com" To iSuccess

    // Add plain-text and HTML alternative bodies.
    // Include some "=" chars so we can see the quoted-printable encoding when used..
    Get ComAddPlainTextAlternativeBody Of hoEmail "This is a test == Hello World!" To iSuccess
    Get ComAddHtmlAlternativeBody Of hoEmail "<html><body>This is a test == Hello World!</body></html>" To iSuccess

    // Examine the MIME of the email to see that it does not use quoted-printable.
    // (If the email contained non-usascii chars, it would automatically use quoted-printable.)
    Get Create (RefClass(cComChilkatMailMan)) To hoMailman
    If (Not(IsComObjectCreated(hoMailman))) Begin
        Send CreateComObject of hoMailman
    End
    Get ComRenderToMime Of hoMailman     Get pvComObject of hoEmail to vEmail
vEmail To sTemp1
    Showln sTemp1

    // Here is the MIME before forcing quoted-printable.
    // Notice the Content-Transfer-Encoding is "7bit" (not "quoted-printable")

    // MIME-Version: 1.0
    // Date: Tue, 29 Sep 2020 12:26:52 -0500
    // Message-ID: <CF274FC0A2F82B98A05B7507DF7DFB966A2C0EB8@CHILKATSLICE>
    // Content-Type: multipart/alternative;
    //  boundary="------------080901080902080000030208"
    // X-Priority: 3 (Normal)
    // Subject: test
    // From: bob@example.com
    // To: Mary <mary@example.com>
    // 
    // --------------080901080902080000030208
    // Content-Transfer-Encoding: 7bit
    // Content-Type: text/plain; charset=us-ascii; format=flowed
    // 
    // This is a test == Hello World!
    // --------------080901080902080000030208
    // Content-Transfer-Encoding: 7bit
    // Content-Type: text/html; charset=us-ascii
    // 
    // <html><body>This is a test == Hello World!</body></html>
    // --------------080901080902080000030208--

    Showln "----"

    // To force quoted-printable, set the Content-Transfer-Encoding header.
    // It will automatically propagate as needed to the MIME sub-parts.
    Send ComAddHeaderField To hoEmail "Content-Transfer-Encoding" "quoted-printable"
    Get ComRenderToMime Of hoMailman     Get pvComObject of hoEmail to vEmail
vEmail To sTemp1
    Showln sTemp1

    // MIME-Version: 1.0
    // Date: Tue, 29 Sep 2020 12:26:52 -0500
    // Message-ID: <F36B276E3A720FE5111D15CE9142C8909E1F5AB9@CHILKATSLICE>
    // Content-Type: multipart/alternative;
    //  boundary="------------080901080902080000030208"
    // X-Priority: 3 (Normal)
    // Subject: test
    // From: bob@example.com
    // To: Mary <mary@example.com>
    // 
    // --------------080901080902080000030208
    // Content-Transfer-Encoding: quoted-printable
    // Content-Type: text/plain; charset=us-ascii; format=flowed
    // 
    // This is a test =3D=3D Hello World!
    // --------------080901080902080000030208
    // Content-Transfer-Encoding: quoted-printable
    // Content-Type: text/html; charset=us-ascii
    // 
    // <html><body>This is a test =3D=3D Hello World!</body></html>
    // --------------080901080902080000030208--


End_Procedure