Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loFtp
LOCAL loPdfData
LOCAL loEmail

lnSuccess = 0

*  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.

loFtp = CreateObject('Chilkat.Ftp2')

loFtp.Hostname = "www.my-ftp-server.com"
loFtp.Username = "mFtpLogin"
loFtp.Password = "myFtpPassword"

*  Connect to the FTP server.
lnSuccess = loFtp.ConnectOnly()
IF (lnSuccess <> 1) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

*  Authenticate with the FTP server.
lnSuccess = loFtp.LoginAfterConnectOnly()
IF (lnSuccess <> 1) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

*  Move to the remove directory where our file is located.
lnSuccess = loFtp.ChangeRemoteDir("qa_data")
IF (lnSuccess = 1) THEN
    lnSuccess = loFtp.ChangeRemoteDir("pdf")
ENDIF

IF (lnSuccess <> 1) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

*  Download...
loPdfData = CreateObject('Chilkat.BinData')
lnSuccess = loFtp.GetFileBd("fishing.pdf",loPdfData)
IF (lnSuccess <> 1) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    RELEASE loPdfData
    CANCEL
ENDIF

loFtp.Disconnect()

*  Create an email object, and add the PDF as an attachment.
loEmail = CreateObject('Chilkat.Email')
loEmail.Subject = "Test with PDF attachment."
loEmail.Body = "This is a plain-text body.."

*  Add the PDF attachment.  (This method call requires Chilkat v9.5.0.63 or later)
lnSuccess = loEmail.AddAttachmentBd("fishing.pdf",loPdfData,"application/pdf")
IF (lnSuccess <> 1) THEN
    ? loEmail.LastErrorText
    RELEASE loFtp
    RELEASE loPdfData
    RELEASE loEmail
    CANCEL
ENDIF

*  Save the email and examine with a text editor to see the PDF attachment is present..
loEmail.SaveEml("qa_output/out.eml")

? "Success."

RELEASE loFtp
RELEASE loPdfData
RELEASE loEmail