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