Sample code for 30+ languages & platforms
Unicode C

Add Email Attachment from FTP

Downloads (into memory) a file from an FTP server and adds it as an attachment to an email.

Note: This example requires Chilkat v9.5.0.63 or later.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkFtp2W.h>
#include <C_CkBinDataW.h>
#include <C_CkEmailW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkFtp2W ftp;
    HCkBinDataW pdfData;
    HCkEmailW email;

    success = FALSE;

    //  Note: This example requires Chilkat v9.5.0.63 or later.

    //  This example assumes Chilkat Ftp2 to have been previously unlocked.
    //  See Unlock Ftp2 for sample code.

    ftp = CkFtp2W_Create();

    CkFtp2W_putHostname(ftp,L"www.my-ftp-server.com");
    CkFtp2W_putUsername(ftp,L"mFtpLogin");
    CkFtp2W_putPassword(ftp,L"myFtpPassword");

    //  Connect to the FTP server.
    success = CkFtp2W_ConnectOnly(ftp);
    if (success != TRUE) {
        wprintf(L"%s\n",CkFtp2W_lastErrorText(ftp));
        CkFtp2W_Dispose(ftp);
        return;
    }

    //  Authenticate with the FTP server.
    success = CkFtp2W_LoginAfterConnectOnly(ftp);
    if (success != TRUE) {
        wprintf(L"%s\n",CkFtp2W_lastErrorText(ftp));
        CkFtp2W_Dispose(ftp);
        return;
    }

    //  Move to the remove directory where our file is located.
    success = CkFtp2W_ChangeRemoteDir(ftp,L"qa_data");
    if (success == TRUE) {
        success = CkFtp2W_ChangeRemoteDir(ftp,L"pdf");
    }

    if (success != TRUE) {
        wprintf(L"%s\n",CkFtp2W_lastErrorText(ftp));
        CkFtp2W_Dispose(ftp);
        return;
    }

    //  Download...
    pdfData = CkBinDataW_Create();
    success = CkFtp2W_GetFileBd(ftp,L"fishing.pdf",pdfData);
    if (success != TRUE) {
        wprintf(L"%s\n",CkFtp2W_lastErrorText(ftp));
        CkFtp2W_Dispose(ftp);
        CkBinDataW_Dispose(pdfData);
        return;
    }

    CkFtp2W_Disconnect(ftp);

    //  Create an email object, and add the PDF as an attachment.
    email = CkEmailW_Create();
    CkEmailW_putSubject(email,L"Test with PDF attachment.");
    CkEmailW_putBody(email,L"This is a plain-text body..");

    //  Add the PDF attachment.  (This method call requires Chilkat v9.5.0.63 or later)
    success = CkEmailW_AddAttachmentBd(email,L"fishing.pdf",pdfData,L"application/pdf");
    if (success != TRUE) {
        wprintf(L"%s\n",CkEmailW_lastErrorText(email));
        CkFtp2W_Dispose(ftp);
        CkBinDataW_Dispose(pdfData);
        CkEmailW_Dispose(email);
        return;
    }

    //  Save the email and examine with a text editor to see the PDF attachment is present..
    CkEmailW_SaveEml(email,L"qa_output/out.eml");

    wprintf(L"Success.\n");


    CkFtp2W_Dispose(ftp);
    CkBinDataW_Dispose(pdfData);
    CkEmailW_Dispose(email);

    }