Public Sub SendEmail(ByRef strTo As String, _
ByRef strFrom As String, _
ByRef strSubject As String, _
ByRef strBody As String, _
ByRef strReplyTo As String, _
ByRef strSender As String, _
ByRef strUserName As String, _
ByRef strP As String, _
Optional ByRef strCC As String, _
Optional ByRef strAttachmentPath As String)
Dim imsg As Object
Dim iconf As Object
Dim flds As Object
Dim schema As String
Dim strProcName As String
On Error GoTo SendEmail_Err
strProcName = "SendEmail"
Set imsg = CreateObject("CDO.Message")
Set iconf = CreateObject("CDO.Configuration")
Set flds = iconf.Fields
' send one copy with SMTP server (with autentication)
schema = "[URL]http://schemas.microsoft.com/cdo/configuration/[/URL]"
flds.item(schema & "sendusing") = cdoSendUsingPort
flds.item(schema & "smtpserver") = "[myserver.domain.tld]" 'Internal SMTP Relay using IIS 6
flds.item(schema & "smtpserverport") = 25
flds.item(schema & "smtpauthenticate") = cdoAnonymous
flds.item(schema & "sendusername") = strUserName
flds.item(schema & "sendpassword") = strP
flds.item(schema & "smtpusessl") = False
flds.Update
With imsg
.To = strTo
.FROM = strFrom
.Subject = strSubject
.HTMLBody = strBody
.Sender = strSender
.CC = strCC
.Organization = "[Your Organization Name here]"
.ReplyTo = strReplyTo
If strAttachmentPath <> "" Then .AddAttachment strAttachmentPath
Set .Configuration = iconf
.Send
End With
Set iconf = Nothing
Set imsg = Nothing
Set flds = Nothing
SendEmail_Exit:
Exit Sub
SendEmail_Err:
MsgBox "Error occurred" & vbCrLf & vbCrLf & _
"In Function:" & vbTab & strProcName & vbCrLf & _
"Err Number: " & vbTab & Err.Number & vbCrLf & _
"Description: " & vbTab & Err.Description, vbCritical, _
"Error in " & Chr$(34) & strProcName & Chr$(34)
Resume SendEmail_Exit
End Sub