pb中用mymail来进行收发邮件-实例与经验谈

mymail这个不用做过多介绍,网上可以随便下载,而且他本身自带函数说明。这里我只讲讲我在使用中的感受:

1、pb中定义mymail的函数,pb10以上的需要加 类似这样的定义 alias for "MyUtil_POP3_Connect;ansi",其版本可以去掉

 

2、收web页面邮件(类似126,sina等)的时候会出现程序死在那里,问题可能是出在解析附件的名字上(我的猜测),实际上并没有确定。

 

3、发送邮件一定要将邮件信息组织完整,特别是发件人地址要写正确,我就在这地方吃了不少亏,随便写的,结果总是发送失败,但是非web页面的邮件却没有问题(我们公司的邮件服务器),这个可能是服务器的验证设置不同。

 

4、MyUtil_GetLastError(ref ls_error) 要在函数出错的时候调用,否则其他函数执行后error信息就抓不出来了。

 

5、用mymail接收邮件是要指定接收内容的长度

 

 

附1:函数定义

//1.
function int MyUtil_POP3_Connect(string host,int port,string UserId,string PassWord,string AttachPath) library "MyMail.dll" alias for "MyUtil_POP3_Connect;ansi"
/*
功能 : 连接POP3服务器
参数 : host          服务器名或地址
       port          端口(110)
       UserId        帐号
       PassWord      密码
       AttachPath    保存附件的目录名
返回 : <0            失败
       >=0           当前邮箱里的邮件数量
*/
//2.
function int MyUtil_POP3_Msg_Count(string host,int port,string UserId,string PassWord) library "MyMail.dll" alias for "MyUtil_POP3_Msg_Count;ansi"
//功能 : 直接查询当前邮箱里的邮件数量
//参数 : host          服务器名或地址
//       port          端口(110)
//       UserId        帐号
//       PassWord      密码
//返回 : <0            失败
//       >=0           当前邮箱里的邮件数量
//3.
Function int MyUtil_POP3_Disconnect()  library "MyMail.dll" 
//功能 : 切断与POP3服务器的连接
//返回 : <0            失败
//       >0            成功
//4.
Function int MyUtil_POP3_GetMail(int MailID )  library "MyMail.dll"  alias for "MyUtil_POP3_GetMail;ansi"
//功能 : 从邮件服务器获取MailID所指定的邮件信息,保存在一个邮件对象(该对象对用户不可见)中
//参数 : MailID        邮件的序号
//返回 : <0            失败
//       >0            成功
//5.
Function int MyUtil_POP3_GetMailFromFile(string filename,string AttachPath)  library "MyMail.dll"  alias for "MyUtil_POP3_GetMailFromFile;ansi"
//功能 : 从filename指定的邮件文件中获取邮件信息,保存在一个邮件对象(该对象对用户不可见)中
//参数 : filename      邮件文件的全路径
//       AttachPath    保存附件的目录名(以/结尾)
//返回 : <0            失败
//       >0            成功
//6.
Function int MyUtil_POP3_DeleteMail( int MailID )  library "MyMail.dll"  alias for "MyUtil_POP3_DeleteMail;ansi"
//功能 : 从邮件服务器删除MailID所指定的邮件
//参数 : MailID        邮件的序号
//返回 : <0            失败
//       >0            成功
//7.
Function int MyUtil_POP3_Msg_GetInfo(int i_type,int i_sub_type, ref string  as_text)  library "MyMail.dll"  alias for "MyUtil_POP3_Msg_GetInfo;ansi"
//功能 : 在从服务器 或 文件接收指定邮件后,根据i_type和i_sub_type获取邮件的各项信息,并输出到as_text
//参数 : i_type        信息类型
//       i_sub_type    i_type的附加信息
//       as_text       输出信息
//返回 : <0            失败
//       >0            成功
//说明 : i_type = 1          获取邮件发送者信息
//         i_sub_type = 1    发送者邮件地址
//         i_sub_type = 2    发送者名称
//         i_sub_type = 3    发送者名称+地址
//
//       i_type = 3          获取邮件主题(SUBJECT)
//         i_sub_type = x    (忽略)
//
//       i_type = 4          获取邮件发送时间
//         i_sub_type = x    (忽略)
//   
//       i_type = 5          获取邮件正文信息
//         i_sub_type = 0    函数返回邮件正文的总行数
//         i_sub_type = n    由as_text输出邮件正文第n行信息  
//
//       i_type = 6          获取邮件附件信息
//         i_sub_type = 0    函数返回邮件附件的总数
//         i_sub_type = n    由as_text输出第n个附件的绝对路径信息  
//
//**************************************************
//***                                            ***
//***               SMTP发邮件                   ***
//***                                            ***
//**************************************************
//1.
function   int   MyUtil_SMTP_Connect(string   host,int   port,string   UserId,string   PassWord)   library   "MyMail.dll"   alias for "MyUtil_SMTP_Connect;ansi"
//Function MyUtil_SMTP_Connect(host:pchar;port:integer;UserId,PassWord:pchar): integer;stdcall;
//功能 : 连接SMTP服务器
//参数 : host          服务器名或地址
//       port          端口(25)
//       UserId        帐号
//       PassWord      密码
//返回 : <0            失败
//       >=0           成功
//2.
function   int   MyUtil_SMTP_Disconnect()   library   "MyMail.dll"
//Function MyUtil_SMTP_Disconnect(): integer;StdCall;
//功能 : 切断与SMTP服务器的连接
//返回 : <0            失败
//       >0            成功
//3.
function   int   MyUtil_SMTP_Msg_Init()   library   "MyMail.dll"
//Function MyUtil_SMTP_Msg_Init():integer;stdcall;
//功能 : 初始化待发送邮件结构对象
//返回 : <0            失败
//       >0            成功
//4.
function   int   MyUtil_SMTP_Msg_SetInfo(int   i_type,int   i_sub_type,string   as_text)  library   "MyMail.dll"   alias for "MyUtil_SMTP_Msg_SetInfo;ansi"
//Function MyUtil_SMTP_Msg_SetInfo(i_type,i_sub_type:integer;as_text:pchar):integer;stdcall;
//功能 : 根据i_type和i_sub_type组织邮件的各项信息,由as_text传入
//参数 : i_type        信息类型
//       i_sub_type    i_type的附加信息
//       as_text       传入信息
//返回 : <0            失败
//       >0            成功
//说明 : i_type = 1          设置邮件发送者信息
//         i_sub_type = 1    发送者邮件地址
//         i_sub_type = 2    发送者名称
//         i_sub_type = 3    发送者名称+地址
//
//       i_type = 2          设置邮件接收者地址
//         i_sub_type = x    (忽略)
//
//       i_type = 3          设置邮件主题(SUBJECT)
//         i_sub_type = x    (忽略)
//   
//       i_type = 5          追加一行信息到邮件正文
//         i_sub_type = x    (忽略)
//
//       i_type = 6          追加一个附件,由as_text传入追加附件的绝对路径信息  
//         i_sub_type = x    (忽略)
//5.
function   int   MyUtil_SMTP_Msg_Send()   library   "MyMail.dll"  alias for "MyUtil_SMTP_Msg_Send;ansi"
//Function MyUtil_SMTP_Msg_Send():integer;stdcall;
//功能 : 通过SMTP服务器发送已经组织好的邮件
//返回 : <0            失败
//       >0            成功
//6.
//Function MyUtil_SMTP_Msg_SendToFile(FileName :pchar):integer;stdcall;
//功能 : 发送已经组织好的邮件到一个本地文件(FileName)
//返回 : <0            失败
//       >0            成功
//**************************************************
//***                                            ***
//***              QP或BASE64解码                ***
//***                                            ***
//**************************************************
//1.
//Function MyUtil_QB_Decode(s_in:pchar;out s_out : ShortString):integer;stdcall;
//功能 : 对邮件中的信息(如 SUBJECT、SENDERNAME、中文附件名称 等)进行QB 或 BASE64 解码
//参数 : s_in          输入的字符串
//       s_out         输出的字符串
//返回 : <0            失败
//       >0            成功
//**************************************************
//***                                            ***
//***              获取错误信息                  ***
//***                                            ***
//**************************************************
//1.
Function int MyUtil_GetLastError(ref string  msg )   library "MyMail.dll"  alias for "MyUtil_GetLastError;ansi"
//功能 : 在收发邮件的过程中,如有错误发生,可立即调用该函数获取相关错误信息,并由msg返回
//参数 : msg           用于返回相关错误信息
//返回 : <0            失败
//       >0            成功
//**************************************************
//***                                            ***
//***              使用说明                      ***
//***                                            ***
//**************************************************
//1.通过网络发邮件
//  (1) MyUtil_SMTP_Msg_Init
//  (2) MyUtil_SMTP_Msg_SetInfo
//  (3) MyUtil_SMTP_Connect
//  (4) MyUtil_SMTP_Msg_Send
//  (5) MyUtil_SMTP_Disconnect
//2.发邮件到本地文件
//  (1) MyUtil_SMTP_Msg_Init
//  (2) MyUtil_SMTP_Msg_SetInfo
//  (3) MyUtil_SMTP_Msg_SendToFile
//3.通过网络收邮件
//  (1) n = MyUtil_POP3_Connect
//  (2) for i = 1 to n
//      MyUtil_POP3_GetMail
//      MyUtil_POP3_Msg_GetInfo
//      MyUtil_POP3_DeleteMail
//  (3) MyUtil_POP3_Disconnect
//4.从文件接收邮件
//  (1) MyUtil_POP3_GetMailFromFile
//  (2) MyUtil_POP3_Msg_GetInfo
//

 

 

 

附2:例子源码

http://download.csdn.net/source/1568717

 

说明:例子中用到了sina的邮箱,这是临时从sina网注册的,登陆用户及密码在程序里都有,大家可以直接使用,
   但如果要用自己的邮箱,必须要开通pop3支持。发送邮件的发送方必须要填写完整
注:其他版本将代码拷贝过去也可用

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值