 |
vb6 · 网络
请问编写一个发送邮件的程序,不使用外部控件如winsock,也不使用任何引用dll?
问题是这样,我编写的程序放在别人的机子上没法运行,因为缺少相应控件或无法创建对象。而我又不方便制作安装程序,也不愿意将所需要的控件拷贝在一起,只想使用单一的一个文件来运行,怎么办?(李忠银)
|
| |
|
 |
你可以调用Winsock的函数来实现你要的功能。所有能上网的计算机肯定有Winsock函数,所以你不用担心分发的问题。不过使用这些函数意味着你需要对Winsock和SMTP有所了解。这里有一个现成的例子: mail.zip。其中包括SMTP、POP3、IMAP、DNS协议的使用。
aij问:请教一下,能用CGI或其他语言写一个程序,直接加在网页上,远程控制服务器把客户填写好的表单以email的形式发送到指定的邮箱吗。我想知道假设没有服务器或不知道服务器信息的情况下(例如租用虚拟服务器,服务器没有asp,php,acceess等数据库的支持)还能不能通过程序把客户的表单发到指定邮箱。万望指教,感激不尽!
答:首先纠正你的一个说法,CGI是运行在服务器端的,而不是运行在客户端。如果你的虚拟主机支持CGI,那么这个问题最简单,可以使用现成的CGI脚本来实现你的目的,具体内容参考QA001458 "如何使用Perl建立一个信息反馈表单"
。如果所使用的虚拟主机不支持CGI,则大致有以下几个方法:
1、编写自己的客户端程序或者ActiveX控件,象前面解答中那样,不过对于你的要求不是最简单的。
2、使用mailto表单方式。例如下面的代码:
<form name="form1" action="mailto:abc@sina.com" method="post" enctype="text/plain">
<p>您的姓名: <input type="text" name="text1" size="12" maxlength="20">
您的E_mail: <input type="text" name="text2" size="20" maxlength="24" value="*****@*.*">
输入口令: <input type="password" name="text3" size="8" maxlength="8"> </p>
<p align="center">
<input type="submit" name="提交" value="提 交">
<input type="reset" name="重写" value="重 写">
</p>
</form>
使用时,将action="mailto:abc@sina.com"中的邮件地址替换为你的地址就可以了。
实际的效果如下:
用户点击提交后,浏览器会调用默认的邮件软件发送EMAIL到指定信箱。缺点有两个:一是需要客户端的邮件软件支持;二是你收到的邮件是编码的,可能需要手工解码。手工解码的问题参考QA000114 "怎样才能作出一个主页上用于提交的表格"。
3、使用一些远程服务商提供的服务。你在http://www.cgi-resources.com/Remotely_Hosted/Form_Processing/可以找到很多这样的服务商,你只需要按照服务商规定的格式设置好客户端的HTML代码。提交的时候,用户的内容先提交给服务商,再转发给你。有的服务是收费的,也有免费的。
相关问题:
QA001314 "如何用VB做一个邮件发送程序"
QA001964 "如何获得POP3和SMTP协议"
QA003775 "怎样增加smtp身份认证功能"
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, Internet编程, INET, www, internet, ie。
|
| |
|
| |
|
| |
|
|