Dan Waters
dwaters at usinternet.com
Tue Aug 7 07:41:54 CDT 2007
Hope this is helpful! Any Comments? Dan Waters __________________________________________________________________________ Private Sub SendEmailGeneric() '-- This would come from a form or standard module Call SendEmailSMTPGeneric("Dan Waters", "Problem 912 is now assigned to you.", "frmProblemMain", "NotifyAssignee", "The Problem Description is . . .", "C:\Problems\Problem 912.doc", , True, True) End Sub Public Sub SendEmailSMTPGeneric(stgTo As String, _ Optional stgSubject As String, _ Optional stgForm As String, _ Optional stgProcedure As String, _ Optional stgMessage As String, _ Optional stgAttachment As String, _ Optional stgRecordNumber As String, _ Optional blnSendToCurrent As Boolean, _ Optional blnHideEmailNotice As Boolean) On Error GoTo EH Dim poSendMail As Object Dim stgFromEmailAddress As String Dim blnShowEmailMessage As Boolean Dim stgCurrentMachineName As String Dim stgSystemAcronym As String If IsNull(stgTo) Then Exit Sub End If If stgTo = "" Then Exit Sub End If stgCurrentMachineName = CurrentPCName '-- Each customer can have their own System Acronym stgSystemAcronym = SystemAcronym '-- Normally don't send an email to the person currently logged on If blnSendToCurrent = False Then If stgTo = CurrentPerson Then Exit Sub End If End If '-- Get the current user's email address stgFromEmailAddress = EmailAddressUserName(CurrentUser) '-- Get separate email addresses for each person in the stgTo list. _ Modular variables are used - could also be Functions MstgAllAddresses = "" MstgTo = "" Call GetSeparateEmailAddresses(stgTo) If MstgTo = "" Then Exit Sub End If '-- Late Binding Set poSendMail = CreateObject("vbSendMail.clsSendMail") '-- Get the SMTP Name (provided by customer) poSendMail.SMTPHost = SMTPServerName '-- Set the From Display Name as being from the system instead of from a person poSendMail.FromDisplayName = SystemAcronym & " Notification" '-- The sending person's email address is recorded, but isn't all that obvious poSendMail.FROM = stgFromEmailAddress poSendMail.ReplyToAddress = stgFromEmailAddress '-- Add a message if there is one If stgMessage <> "" Then poSendMail.Message = stgMessage End If '-- Multiple attachments can be sent If Not IsEmpty(stgAttachment) And stgAttachment <> "" Then poSendMail.Attachment = stgAttachment End If '-- Define recipients' email addresses poSendMail.RecipientDisplayName = MstgTo poSendMail.Recipient = MstgAllAddresses poSendMail.Subject = stgSubject '-- When email is originated from the developer's PC, don't actually send email If stgCurrentMachineName <> "DanWaters" Then poSendMail.Connect poSendMail.Send poSendMail.Disconnect End If '-- Does this user want to see email messages? blnShowEmailMessage = ShowEmailMessages '-- Display an 'Email Sent' message for various circumstances If blnShowEmailMessage = True And stgProcedure <> "UserLicenses" And stgProcedure <> "DeveloperEmail" And blnHideEmailNotice = False Then If InStr(MstgTo, "@") <> 0 Then MsgBox "Email To: " & MstgTo & vbNewLine & vbNewLine & "Subject: " & stgSubject, vbOKOnly, "Email Sent Notice" Else FormattedMsgBox GstgReminder, "Email To: " & MstgTo & vbNewLine & vbNewLine & "Subject: " & stgSubject & "@ @", vbOKOnly, "Email Sent Notice" End If End If Exit Sub EH: Application.Echo True Call GlobalErrors("", Err.Number, Err.Description, "Email SMTP Generic", "SendEmailSMTPGeneric", stgForm & ": " & stgRecordNumber, stgProcedure, "Line " & Erl) End Sub