Sample code for 30+ languages & platforms
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 C Downloads

C
#include <C_CkFtp2.h>
#include <C_CkBinData.h>
#include <C_CkEmail.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkFtp2 ftp;
    HCkBinData pdfData;
    HCkEmail 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 = CkFtp2_Create();

    CkFtp2_putHostname(ftp,"www.my-ftp-server.com");
    CkFtp2_putUsername(ftp,"mFtpLogin");
    CkFtp2_putPassword(ftp,"myFtpPassword");

    //  Connect to the FTP server.
    success = CkFtp2_ConnectOnly(ftp);
    if (success != TRUE) {
        printf("%s\n",CkFtp2_lastErrorText(ftp));
        CkFtp2_Dispose(ftp);
        return;
    }

    //  Authenticate with the FTP server.
    success = CkFtp2_LoginAfterConnectOnly(ftp);
    if (success != TRUE) {
        printf("%s\n",CkFtp2_lastErrorText(ftp));
        CkFtp2_Dispose(ftp);
        return;
    }

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

    if (success != TRUE) {
        printf("%s\n",CkFtp2_lastErrorText(ftp));
        CkFtp2_Dispose(ftp);
        return;
    }

    //  Download...
    pdfData = CkBinData_Create();
    success = CkFtp2_GetFileBd(ftp,"fishing.pdf",pdfData);
    if (success != TRUE) {
        printf("%s\n",CkFtp2_lastErrorText(ftp));
        CkFtp2_Dispose(ftp);
        CkBinData_Dispose(pdfData);
        return;
    }

    CkFtp2_Disconnect(ftp);

    //  Create an email object, and add the PDF as an attachment.
    email = CkEmail_Create();
    CkEmail_putSubject(email,"Test with PDF attachment.");
    CkEmail_putBody(email,"This is a plain-text body..");

    //  Add the PDF attachment.  (This method call requires Chilkat v9.5.0.63 or later)
    success = CkEmail_AddAttachmentBd(email,"fishing.pdf",pdfData,"application/pdf");
    if (success != TRUE) {
        printf("%s\n",CkEmail_lastErrorText(email));
        CkFtp2_Dispose(ftp);
        CkBinData_Dispose(pdfData);
        CkEmail_Dispose(email);
        return;
    }

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

    printf("Success.\n");


    CkFtp2_Dispose(ftp);
    CkBinData_Dispose(pdfData);
    CkEmail_Dispose(email);

    }