注册 登录
编程论坛 VFP论坛

请哪位提供一个 邮件自动发送和接收的例子

hdx60 发布于 2022-11-24 17:33, 1357 次点击
现在网上下载、复制都不可以。看那位能提供一下。谢谢!myfll做的更好。
9 回复
#2
cssnet2022-11-24 18:26
印象中,十几年前用过。
别人用VFP写的,很短的一段代码。
群发!拼命群发!开心死我老人家了!!………………………………………………结果没过几天,我用于发电邮的账号就被各大邮件服务器列入了“黑名单”——因为从此再也无法正常发出电邮了。

#3
厨师王德榜2022-11-25 09:25
以前用旧版本的outlook的ocx做过,现在好多电脑上没有那个ocx了.
还有一种是用cdo对象来说的,可以不依赖outlook, 代码一时找不到,
你不如 直接用木瓜老师的库来做吧.
#4
厨师王德榜2022-11-25 09:30
找到一个用outlook的ocx收邮件的 代码,发送的未找到, 将就着看:
程序代码:

FUNCTION  SendEmailByOutlook(cHtmlBody as string ,cAttchFile as String ,cReceiver as String,ccc as String,cTITLE as String) as Boolean
* 生成带附件的邮件(这个函数,假定用户的Outlook已经配置好:账户[color=#808080]/密码/smtp/pop3服务器等规则)[/color]
* 并且邮件的页面内容要粘贴指定的表格,插入指定的文字.
* 参数:Html格式正文全名,附件文件全名,收件人在Outlook地址簿中的名字.最好是名字[color=#808080]+邮箱:"奋斗<chu.zha@hg.com>"[/color]

 #DEFINE MAILITEM 0                && 邮件对象(供Outlook.application生成 邮件对象/联系人对象...时必需的参数)

 #DEFINE IMPORTANCELOW 0        && 邮件紧急程度--
#DEFINE IMPORTANCENORMAL 1        && 邮件紧急程度--普通
#DEFINE IMPORTANCEHIGH 2         && 邮件紧急程度--

LOCAL lRetu as Boolean
IF FILE(cHtmlBody) AND FILE(cAttchFile) AND LEN(cReceiver) > 0 THEN
    IF VARTYPE(cTITLE) <>'C' THEN   &&  邮件标题
     cTITLE= JUSTSTEM(cAttchFile)        
    ELSE
        IF EMPTY(cTITLE) THEN
         cTITLE= JUSTSTEM(cAttchFile)            
        ENDIF
    ENDIF

     wait WINDOW  '现在开始往 ' + cReceiver + ' 发送邮件文件...' NOWAIT
     TRY
         oOutLookObject = CreateObject("Outlook.Application")
         oEmailItem = oOutLookObject.CreateItem(MAILITEM)

         WITH oEmailItem
          .Recipients.Add(cReceiver)  &&  收件人,也可以直接改写to属性,如:.To='user@'这种方式.
          IF NOT EMPTY(ccc) THEN         &&  抄送,
          .cc = ccc
          ENDIF
          .Subject = cTITLE       &&  邮件标题
          .Importance = IMPORTANCENORMAL
          .BodyFormat= 2  && 0=olFormatUnspecified (实际上不行,会报错) ;1=olFormatPlain ;2=olFormatHTML ;3=olFormatRichText
          .HTMLBody = FILETOSTR(cHtmlBody)   && html格式的邮件正文
    *     .Body = FILETOSTR("c:\xssr1.txt")
          .Attachments.Add(cAttchFile)        &&  附件
          .Send
         ENDWITH

         lRetu = .t.
     CATCH TO verr
         MESSAGEBOX(verr.message)
     lRetu = .f.
     FINALLY
         RELEASE oEmailItem
         RELEASE oOutLookObject     
     ENDTRY
     
     RETURN lRetu
ELSE   &&  正文/附件/收件人等为空.
    RETURN .f.
ENDIF      
ENDFUNC
#5
gs25367856782022-11-25 09:55
现在都是用手机微信,还有谁来打开一个邮箱的?
我已经好多年不用邮箱了。
#6
langzinet2022-11-25 15:46
Power by 木瓜 MyFLL
*示例1:发送一封纯文本的邮件给 gates@

Set Library To myFll

Local hSmtp
hSmtp = SmtpCreate() &&创建句柄
SmtpNewMail(hSmtp,"abc@,"gates@,"邮件主题","这是邮件内容啦")&&创建邮件
if not SmtpSend(hSmtp,"smtp.,"abc","password ") &&开始发送
    ?"发送失败,错误信息为:"
    ??SmtpGetLastError(hSmtp)
endif
SmtpClose(hSmtp) &&断开句柄

Set Library To

*示例2:发送一封html格式的邮件,同时发送给两个人,带两个附件

Set Library To myFll

Local hSmtp,cHtmlBody

hSmtp = SmtpCreate(.T.) &&创建句柄,指定要使用html格式
cHtmlBody="<html><body>这是个html格式的邮件<b>Hello world!</b></body></html>" &&这是邮件内容
SmtpNewMail(hSmtp,"abc@,"gates@,abc@,"邮件主题",cHtmlBody,"myfll.fll|c:\boot.ini")&&邮件发送给了两个人,带了两个附件。
if not SmtpSend(hSmtp,"smtp.,"abc","password ") &&开始发送
    ?"发送失败,错误信息为:"
    ??SmtpGetLastError(hSmtp)
endif
SmtpClose(hSmtp) &&断开句柄

Set Library To
#7
hdx602022-11-26 06:44
群发被列黑名单,,,说明现在要校验码是对的。
我是说,伙伴通过邮件,数据共享。发送已用myfll 解决过来,现在只需自动收件了,myfll还组合不来。
谢谢各位。

[此贴子已经被作者于2022-11-26 06:46编辑过]

#8
hdx602022-11-26 06:50
4楼的可以学习
#9
hdx602022-12-04 09:32
谢谢各位!还是用myfll解决了
#10
whinda2022-12-26 01:44
试试Jmail
1