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支持。发送邮件的发送方必须要填写完整
注:其他版本将代码拷贝过去也可用