Use API to implement mass mail in VFP
Author: Xie ancient and modern
Contact your email with friends, customer or relatives, have become very popular. Implementing email functions in the management system is clearly a wise move that is suitable for users and market development needs. Of course, it is not difficult to implement email functions, and implement a bulk mail sending function is a greater practical measure. We are fully considering such demand, fully considering such demand, completely considering such demand and fully considering the mass mail transmission. Of course, implementing such a function requires a Windows API function, and many users may feel that the API is very mysterious, and I don't dare to try it easily. In fact, the API function is very powerful, and the implementation of many functions is not. In fact, you can master a certain law, the API is not so difficult. The following brief explains how to implement it.
Batch mail sending forms (as shown)
Contains four command buttons ("Select Mail Table", "Confirm Mail List", "Go to Mail Processor", "Exit"), two tags, a drop-down combo box, an edit box, a text box (with The pull-down combination frame is combined). The process is like this: the program first detects whether there is an open table, if there is, no prompt, no prompts that have not been opened, you can click "Select Include Mail Table", select a data table to open. In the future, you can select a field containing the email address from the drop-down combo box, and then click the "OK Mail List", filter the qualified mail address, which appears in the edit box. If you want to delete or add an email address, you can do it in the edit box. Next click "Go to Mail Processor", these email addresses will be accepted as "Recipient" by the system default mail acceptance and sender such as Foxmail, Outlook and other programs, and the message editing window appears in the edit window. It can be convenient to write a letter! Hereinafter, the core code will be described in turn.
"Select the Moiled Men" Mouse Click Event Code:
M.cfilename2 = getFile ("dbf") && display file opens the selection window, select a DBF file
IF file (m.cfilename2) = .t.
Else
Return
MendiF
THISFORM.CBOMAILZIDUAN.ROWSOURCETYPE = 8 && Determines the data source type as the table structure
THISFORM.CBOMAILZIDUAN. ROWSource = CFileName2 && Determining Data Source Name
drop-down combination box CBOMAILZIDUAN mouse Click Event Code:
ISform.txtmailziduan.value = thisform.cbomailziduan.value
"Confirm Mail List" Mouse Click Event Code:
IF DBF (1) == ''
IF MessageBox ("No open table, please select the included mail table retry!", 64, "Mail Processing" = 1
Return
MendiF
MendiF
DO FORM FRM Find && uses a lookup form provided by the VFP itself to construct a lookup form. Conditional records will be utilized by the following procedures.
Browse Nomenu NOEDIT Nodelete && Shows Meeting Conditional Record
M.lcemail = Upper (alltrim (thisform.txtmailziduan.value) && gets email field name
M. Lmailok = .f.
FOR i = 1 to fcount
IF M.LCemail <> Field (i)
Else
M. Lmailok = .t.
Exit
MendiF
Mendfor
IF m.Lmailok == .f.
IF MessageBox ("There is no field in the table, please modify the field name and try!", 64, "Mail Processing" = 1
Return
MendiF
MendiF
To && In the following block, the eligible data will be output to a text file. Read the text content into the Edtmaillist Edit box for editing modifications.
IF File ("Mailist.txt") = .t.
Delte File Mailist.txt && If the temporary file already exists, then delete it first.
MendiF
Copy to Maillist Fields & Lcemail Type Delimited with Blank
onemail = fopen ("maillist.txt")
M.cmail = ''
read the block address of the email address.
DO While .Not. Feof (Handlemail)
M.cmail = Alltrim (FGETS (Handlemail) ',' M.cmail
Menddo
ISform.edtmaillist.Value = m.cmail
FClose (Handlemail)
IF File ("Mailist.txt") = .t.
Delete File Maillist.txt
MendiF
Return
"Go to Mail Processor" Mouse Click Event Code:
?
Return
form of Activate event code:
Set procedure to xgjudf
IF DBF (1) == ''
IF MessageBox ("No open table, please select the included mail table retry!", 64, "Mail Processing" = 1
Return
MendiF
MendiF
THISFORM.CBOMAILZIDUAN.ROWSOURCEPE = 8 && Specifies the data source type of the drop-down combo box.
Bisform.cbomailziduan.rowsource = Alias (1) && Specifies the data source of the drop-down combo box.
xgjfileopen () function in xgjudf
********
Function Description: Use the shellexecute function in the API to call the open program handling file, if the .doc file is opened with Word, send your email using the default mail processor.
Parameter M.cxgjFileName Represents the name of the file, such as sending M.cxgjfilename = "way: labman2001@sina.com", open the RTF file to write m.cxgjfilename = "c: / documents and settings / xgj / my documents / Customer .rtf "
********
Function XGJFileOpen ()
Parameter m.cxgjfilename
&& Declaration SHELLEXECUTE functions
Declare Integer shellexecute in shell32.dll integer hwnd,; "String LPSZOP,;
String lpszfile,;;
String lpszparams,;
String lpszdir,;;
Indinteger fsshowcmd
&& Declaration GetDeskTopWindow function, this function activates Windows desktop
Declare Integer GetDesktopWindow in Win32API
&& specifies to run the shellexecute function from the Windows desktop
?
LLPSZOP = ""
"&& designated the file for SHELLEXECUTE operations for mailto: labman2001@sina.com
LLPSZFILE = Alltrim (m.cxgjfilename)
LLPSZPARAMS = ""
Specify the default directory of shellexecute c: /
LLPSZDIR = "C: /"
FSSHOWCMD = 1
&& Execute SHELLEXECUTE commands
LLNRETURN = SHELLEXECUTE (HWND, LPSZOP, LPSZFILE, LPSZPARAMS, LPSZDIR, FSSHOWCMD)