
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Sub SendEMail(ByVal sMailName As String, ByVal sSubject As String, ByVal sBody As String)
'
On Error GoTo eRes
'//////////////////////////////////////////////////////////////////////////////////////
Dim sSendString As String
Dim lRes As Long
Const SW_SHOW = 5
'//////////////////////////////////////////////////////////////////////////////////////
sSendString = "mailto:" & sMailName & "?subject=" & Replace(sSubject, " ", "%20") & _
"&body=" & Replace(Replace(sBody, " ", "%20"), vbCrLf, "%0A")
lRes = ShellExecute(0, "open", sSendString, "", "", SW_SHOW)
Exit Sub
eRes:
Call Err.Raise(Err.Number, "SendEMail", _
Err.Description)
End Sub
[/syntax]
Вариант 2. Использование Outlook'а ([b]не[/b] Express). Нужен приатаченный класс.
[syntax="vb"]
Public Sub SendEMail(ByVal sMailName As String, ByVal sSubject As String, ByVal sBody As String)
'
On Error GoTo eRes
'//////////////////////////////////////////////////////////////////////////////////////
Dim oMail As clsMailManagement
'//////////////////////////////////////////////////////////////////////////////////////
Set oMail = New clsMailManagement
With oMail
.BodyType = MBT_DEFAULT
.AddrAdd sMailName
.Subject = sSubject
.Body = sBody
If Not .CreateMessage Then Call MsgBox("Ошибка подключения к Outlook (" & .LastError & ")", vbExclamation, "Почта")
End With
Set oMail = Nothing
Exit Sub
eRes:
Call Err.Raise(Err.Number, "SendEMail", _
Err.Description)
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1