不想另外安装第三方的发邮件组件,想直接利用MS的。
请问在VB里如何用MAPI来发送邮件(好像MAPI是OUTLOOK和OE自带有的吧),需要像在OE里发邮件一样先手工设置好发信帐号吗?能不能像JMAIL一样在发信时指定SMTP服务器及发信验证用户名和密码?
哪里有CDONTS发邮件的源码?我需要能指定发邮件的SMTP及认证用户名和密码的那个版本的,这就相当于JMAIL能实现的功能了,好像低版本的CDO不支持,汗~~~~~
下面是使用winsock实现的发送邮件,但其它问题仍未解决,等待高手
eSTMP.vbp
-------------------------------------------
Type=Exe
Object={8DD890-BB-CF-9ABC-0080C7E7B78D}#.0#0; MSWINSCK.OCX
Form=frmmail.frm
Startup="Form"
HelpFile=""
Title="Email发送"
ExeName="Email.exe"
Command=""
Name="Email"
HelpContextID="0"
CompatibleMode="0"
MajorVer=
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="dapha.net"
VersionFileDescription="Email发送,支持服务器认证,超文本邮件内容"
VersionLegalCopyright="Copyright 00 dapha.net"
VersionProductName="Email发送软件"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=
[MS Transaction Server]
AutoRefresh=
frmMail.frm
-----------------------------------------
VERSION .00
Object = "{8DD890-BB-CF-9ABC-0080C7E7B78D}#.0#0"; "MSWINSCK.OCX"
Begin VB.Form Form
BorderStyle = 'Fixed Single
Caption = "邮件发送程序(支持smtp服务器验证)"
ClientHeight = 0
ClientLeft =
ClientTop = 0
ClientWidth = 80
LinkTopic = "Form"
MaxButton = 0 'False
ScaleHeight = 0
ScaleWidth = 80
StartUpPosition = 'Windows Default
Begin MSWinsockLib.Winsock Winsock
Left = 60
Top = 0
_ExtentX = 7
_ExtentY = 7
_Version = 96
End
Begin VB.TextBox txtmessage
Height = 69
Left = 0
MultiLine = - 'True
TabIndex = 8
Text = "frmmail.frx":0000
ToolTipText = "这里为超文本信件内容"
Top = 80
Width = 77
End
Begin VB.TextBox user
Height = 70
Left = 960
TabIndex =
Top = 80
Width = 7
End
Begin VB.TextBox subject
Height = 70
Left = 960
TabIndex =
Text = "你好"
Top = 0
Width = 9
End
Begin VB.TextBox txtserver
Height = 70
Left = 960
TabIndex =
Text = "smtp.etang.com"
Top = 960
Width = 9
End
Begin VB.TextBox txtpwa
Height = 70
IMEMode = 'DISABLE
Left = 960
PasswordChar = "*"
TabIndex =
Top = 00
Width = 7
End
Begin VB.TextBox getaddress
Height = 00
Left = 960
TabIndex =
Top = 600
Width = 9
End
Begin VB.TextBox txtfrom
Height = 00
Left = 960
TabIndex = 0
Top = 0
Width = 9
End
Begin VB.CommandButton cmdExit
Caption = "退出"
Height = 7
Left = 680
TabIndex = 9
Top = 0
Width = 97
End
Begin VB.CommandButton CmdSend
Caption = "发送"
Default = - 'True
Height = 7
Left = 60
TabIndex = 6
Top = 0
Width = 97
End
Begin VB.TextBox txtMessage
Height = 8
Left = 0
MultiLine = - 'True
TabIndex = 7
Text = "frmmail.frx":0AE
ToolTipText = "信件内容"
Top = 680
Width = 77
End
Begin VB.Label Label6
AutoSize = - 'True
Caption = "用户名"
Height = 80
Left = 60
TabIndex = 6
Top = 80
Width = 0
End
Begin VB.Label StatusTxt
AutoSize = - 'True
BackStyle = 0 'Transparent
BorderStyle = 'Fixed Single
Height = 8
Left = 960
TabIndex =
Top = 00
Width = 7
End
Begin VB.Label Label
AutoSize = - 'True
Caption = "主题:"
Height = 80
Left = 0
TabIndex =
Top = 0
Width = 0
End
Begin VB.Label Label
AutoSize = - 'True
Caption = "SMTP服务器"
Height = 80
Left = 0
TabIndex =
Top = 960
Width = 900
End
Begin VB.Label Label
AutoSize = - 'True
Caption = "密码"
Height = 80
Left = 60
TabIndex =
Top = 00
Width = 60
End
Begin VB.Label Label
AutoSize = - 'True
Caption = "收信人地址"
Height = 80
Left = 0
TabIndex =
Top = 600
Width = 900
End
Begin VB.Label Label
AutoSize = - 'True
Caption = "发信人地址"
Height = 80
Left = 0
TabIndex = 0
Top = 0
Width = 900
End
End
Attribute VB_Name = "Form"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'程序组合:dapha(汪锋)
'下载http://www.dapha.net
'我是一名VB爱好者,希望得到大家的帮助,共同学习,进步
'转摘请保留以上信息,谢谢合作
Private Enum SMTP_State
MAIL_CONNECT
MAIL_HELO
MAIL_from
MAIL_RCPTTO
MAIL_DATA
MAIL_DOT
MAIL_QUIT
MAIL_USER
MAIL_PASS
mail_login
End Enum
Private m_State As SMTP_State
Private m_strEncodedFiles As String









