Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Sending mail
Message
From
24/10/2006 04:27:42
 
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Miscellaneous
Thread ID:
01164039
Message ID:
01164040
Views:
13
>I want to send mail from vfp table.(outlook) All email address is stored in dbf, I write message and mail send one by one( like mass mail)

From West Wind, there is a nice tool wwIPStuff that you can create an object from. I use it like this. You may adjust as needed:
* Send an email
FUNCTION SendEmail
PARAMETER tcAddress,tcWait,tcFromName,tcSubject,tmTo,tmCc,tmBody,tmToName,tmFile,tmCcName,tmBcc,tmBccName
LOCAL lnCompteur,lcEmail
LOCAL lcMailServer,lcMailSenderEmail,lcMailSenderName,lcMailRecipient,lcMailCCList,lcMailBCCList
LOCAL lcMailSubject,lcMailMessage,lcMailContentType,lcMailAttachment
tcAddress=ALLTRIM(tcAddress)
tcWait=ALLTRIM(tcWait)
tcFromName=ALLTRIM(tcFromName)
tcSubject=ALLTRIM(tcSubject)
tmTo=ALLTRIM(tmTo)
tmToName=IIF(TYPE('tmToName')='C',ALLTRIM(tmToName),'')
tmFile=IIF(TYPE('tmFile')='C',ALLTRIM(tmFile),'')
tmCc=IIF(TYPE('tmCc')='C',ALLTRIM(tmCc),'')
tmCcName=IIF(TYPE('tmCcName')='C',ALLTRIM(tmCcName),'')
tmBcc=IIF(TYPE('tmBcc')='C',ALLTRIM(tmBcc),'')
tmBccName=IIF(TYPE('tmBccName')='C',ALLTRIM(tmBccName),'')

Main.StatutClient.Caption=tcWait

* If tmTo is empty
IF LEN(ALLTRIM(tmTo))=0
   RETURN
ENDIF

* We can't accept this
IF '/'$tmTo
   RETURN
ENDIF

Mail=CREATE("wwIPStuff")
Mail.cMailServer=gcSmtpHost

Mail.cSenderEmail=tcAddress
Mail.cSenderName=tcFromName

* Insert custom recipient
Mail.cRecipient=''
FOR lnCompteur=1 TO ParmCnt(tmTo)
   lcEmail=GetParm(tmTo,lnCompteur)
   IF NOT ValidEmail(lcEmail)
      LOOP
   ENDIF
   IF glEmailSentWithName
      lcName=GetParm(tmToName,lnCompteur)
      IF lcName>0
         Mail.cRecipient=Mail.cRecipient+lcName+' <'+lcEmail+'>,'
      ENDIF
      ELSE
      Mail.cRecipient=Mail.cRecipient+lcEmail+','
   ENDIF
NEXT

* If no recipient
IF LEN(Mail.cRecipient)=0
   RETURN
ENDIF

Mail.cRecipient=SUBSTR(Mail.cRecipient,1,LEN(Mail.cRecipient)-1)

* Cc
Mail.cCCList=''
IF LEN(ALLTRIM(tmCc))>0
   FOR lnCompteur=1 TO ParmCnt(tmCc)
      lcEmail=GetParm(tmCc,lnCompteur)
      IF NOT ValidEmail(lcEmail)
         LOOP
      ENDIF
      IF glEmailSentWithName
         lcName=GetParm(tmCcName,lnCompteur)
         IF lcName>0
            Mail.cCCList=Mail.cCCList+lcName+' <'+lcEmail+'>,'
         ENDIF
         ELSE
         Mail.cCCList=Mail.cCCList+lcEmail+','
      ENDIF
   NEXT
   Mail.cCCList=SUBSTR(Mail.cCCList,1,LEN(Mail.cCCList)-1)
ENDIF

* Bcc
Mail.cBCCList=''
IF LEN(ALLTRIM(tmBcc))>0
   FOR lnCompteur=1 TO ParmCnt(tmBcc)
      lcEmail=GetParm(tmBcc,lnCompteur)
      IF NOT ValidEmail(lcEmail)
         LOOP
      ENDIF
      IF glEmailSentWithName
         lcName=GetParm(tmBccName,lnCompteur)
         IF lcName>0
            Mail.cBCCList=Mail.cBCCList+lcName+' <'+lcEmail+'>,'
         ENDIF
         ELSE
         Mail.cBCCList=Mail.cBCCList+lcEmail+','
      ENDIF
   NEXT
   Mail.cBCCList=SUBSTR(Mail.cBCCList,1,LEN(Mail.cBCCList)-1)
ENDIF

Mail.cSubject=tcSubject
Mail.cMessage=tmBody
Mail.cContentType='text/html'

* File attachment
Mail.cAttachment=''
IF LEN(ALLTRIM(tmFile))>0
   FOR lnCompteur=1 TO ParmCnt(tmFile)
      Mail.cAttachment=Mail.cAttachment+UPPER(GetParm(tmFile,lnCompteur))+','
   NEXT
   Mail.cAttachment=SUBSTR(Mail.cAttachment,1,LEN(Mail.cAttachment)-1)
ENDIF

llResult=Mail.SendMail()
lnCompteur=1
DO WHILE NOT llResult
   Main.StatutClient.Caption=Mail.cErrorMsg+' Retrying: '+ALLTRIM(STR(lnCompteur))
   INKEY(30)
   llResult=Mail.SendMail()
   lnCompteur=lnCompteur+1
   IF lnCompteur=4
      lcMailServer=Mail.cMailServer
      lcMailSenderEmail=Mail.cSenderEmail
      lcMailSenderName=Mail.cSenderName
      lcMailRecipient=Mail.cRecipient
      lcMailCCList=Mail.cCCList
      lcMailBCCList=Mail.cBCCList
      lcMailSubject=Mail.cSubject
      lcMailMessage=Mail.cMessage
      lcMailContentType=Mail.cContentType
      lcMailAttachment=Mail.cAttachment
      ERROR(Mail.cErrorMsg)
      EXIT
   ENDIF      
ENDDO
ValidEmail() is not included. You may adjust the code to use your own.
Michel Fournier
Level Extreme Inc.
Designer, architect, owner of the Level Extreme Platform
Subscribe to the site at https://www.levelextreme.com/Home/DataEntry?Activator=55&NoStore=303
Subscription benefits https://www.levelextreme.com/Home/ViewPage?Activator=7&ID=52
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform