' 发送 E-Mail 且不显示"邮件对话框" (直接发送) MAPIMessages1.Send False End If
' 结束 MAPI Session MAPISession1.SignOff End SubPrivate Sub cmdExit_Click() End End Sub
用Sockets发送电子邮件 想必大多数程序员都是运用Microsoft MAPI控件来发送电子邮件。那你有没有想过其它方法呢?其实,只需简单到4个参数,通过WinSock也可以发电子邮件,不信? 在Form中添加一个WinSock控件,命名为Socket。 Function SendMail(psTo As String, psFrom As String, psSubject As String, psBody As String) As Boolean Dim lsMessage As String Dim lsSep As String lsMessage = "MAIL FROM: <" & psFrom & ">" & vbCrLf _ & "RCPT TO: <" & psTo & ">" & vbCrLf _ & "DATA" & vbCrLf _ & "DATE: " & Format$(Now, "dd mmm yy ttttt") & vbCrLf _ & "FROM: " & psFrom & vbCrLf _ & "TO: " & psTo & vbCrLf _ & "SUBJECT: " & psSubject & vbCrLf & vbCrLf _ & psBody & vbCrLf & "." & vbCrLf Socket.SendData (lsMessage) End Function 其中,psFrom是发送人的地址,psTo是收件人的地址,psSubject是邮件主题,psBody是邮件内容。 如何,够简单吧。
Dim xOutLook As New Outlook.Application Set xMail = xOutLook.CreateItem(olMailItem) xMail.To = txtAddress.Text xMail.Subject = txtSubject.Text xMail.HTMLBody = strHTML 'HTMLÎĵµÄÚÈÝ xMail.Send
就这么简单
to DeityFox(神狐): 我用你的方法出错,提示是: Run-time error '10047'; Address Family is not supported这是什么问题?谢谢!!!
加载:MAPIMessages1
MAPISession1
txtName
txtAddress
txtSubject
txtNote
cmdSend
cmdExit
窗体内代码如下:
Private Sub cmdSend_Click()
' 开始 MAPI Session
MAPISession1.SignOn
' 当 MAPI Session 建立后,
' Session 所产生的 Handle 会存于 SessionID 属性中
If MAPISession1.SessionID <> 0 Then
' 建立 MAPIMessages 与 MAPISession 间之有效联系
MAPIMessages1.SessionID = MAPISession1.SessionID
' 建立新的 E-Mail Message
MAPIMessages1.Compose
' 收件人 (Recipient's Name)
MAPIMessages1.RecipDisplayName = txtName.Text
' 收件人的 E-Mail 地址
MAPIMessages1.RecipAddress = txtAddress.Text
' 是否要检查收件人有无存在于全域 (Global) 或个人 (Personal) 通讯录中
MAPIMessages1.AddressResolveUI = True
' 检查收件人有无存在于全域 (Global) 或个人 (Personal) 通讯录中
MAPIMessages1.ResolveName
' E-Mail 的主题
MAPIMessages1.MsgSubject = txtSubject.Text
' E-Mail 的内文
MAPIMessages1.MsgNoteText = txtNote.Text
' 发送 E-Mail 且不显示"邮件对话框" (直接发送)
MAPIMessages1.Send False
End If
' 结束 MAPI Session
MAPISession1.SignOff
End SubPrivate Sub cmdExit_Click()
End
End Sub
想必大多数程序员都是运用Microsoft MAPI控件来发送电子邮件。那你有没有想过其它方法呢?其实,只需简单到4个参数,通过WinSock也可以发电子邮件,不信?
在Form中添加一个WinSock控件,命名为Socket。
Function SendMail(psTo As String, psFrom As String, psSubject As String, psBody As String) As Boolean
Dim lsMessage As String
Dim lsSep As String
lsMessage = "MAIL FROM: <" & psFrom & ">" & vbCrLf _
& "RCPT TO: <" & psTo & ">" & vbCrLf _
& "DATA" & vbCrLf _
& "DATE: " & Format$(Now, "dd mmm yy ttttt") & vbCrLf _
& "FROM: " & psFrom & vbCrLf _
& "TO: " & psTo & vbCrLf _
& "SUBJECT: " & psSubject & vbCrLf & vbCrLf _
& psBody & vbCrLf & "." & vbCrLf
Socket.SendData (lsMessage)
End Function
其中,psFrom是发送人的地址,psTo是收件人的地址,psSubject是邮件主题,psBody是邮件内容。
如何,够简单吧。
Set xMail = xOutLook.CreateItem(olMailItem)
xMail.To = txtAddress.Text
xMail.Subject = txtSubject.Text
xMail.HTMLBody = strHTML 'HTMLÎĵµÄÚÈÝ
xMail.Send
就这么简单
我用你的方法出错,提示是:
Run-time error '10047';
Address Family is not supported这是什么问题?谢谢!!!