Advertisement
Java_Volume1 Internet/ HTML #101547

Universal Email Interface

Lays down a universal interface to sending email. Easier to port to other servers that use different COM objects to send email. Even exposes a list of ProgID's that are installed on the server. (This is the beginnig. But I am sure you can see where the benefit of this code is going)

AI

Resumen de IA: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Código fuente
original-source
<%
Class clsEmail
	
	Public SenderName
	Public SenderAddress
	Public RecipientName
	Public RecipientAddress
	Public Subject
	Public Message
	Public Host
	Public ProgID
	Public LogonUsername
	Public LogonPassword
	
	Private Sub Class_Initialize()
		' Setup default values
		SenderAddress	= Application.Value("Settings-Email-Address")
		SenderName		= Application.Value("Settings-Email-Name")
		Host			= Application.Value("Settings-Email-Server")
		ProgID			= Application.Value("Settings-Email-ProgID")
	End Sub
	
	Public Property Get Installed()
		Dim llngIndex
		Dim llngMaxIndex
		Dim lstrProgIDs
		Dim lstrProgIDAry
		Dim lstrPairAry
		Dim lstrInstalled
		Dim lobjTest
		
		On Error Resume Next
		
		lstrProgIDs = _
			"CDONTS.NewMail:Collaborative Data Objects for NT;" & _
			"SMTPsvg.Mailer:Server Objects - ASPMail/ASPQMail"
		'	"POPsvb.Mailer:Server Objects - ASP Pop3;" & _
		'	"SoftArtisans.SMTPMail:Software Artisans - SMTP Mail;" & _
		'	"Jmail.smtpmail:w3 JMail;" & _
		'	"Persists.MailSender:Persists - ASPEmail;" & _
		'	"dkQmail.Qmail:dkQmail;" & _
		'	"Geocel.Mailer:GeoCel;" & _
		'	"iismail.iismail.1:IISMail;" & _
		'	"SmtpMail.SmtpMail.1:SMTP;" & _
		'	"ocxQmail.ocxQmailCtrl.1:OCXQMail;" & _
		'	"Dundas.Mailer:Dundas - ASPMailer;" & _
		'	"EasyMail.SMTP.5:Quicksoft - EasyMail"
		lstrProgIDAry = Split(lstrProgIDs, ";")
		
		llngMaxIndex = UBound(lstrProgIDAry)
		
		For llngIndex = 0 To llngMaxIndex
			lstrPairAry = Split(lstrProgIDAry(llngIndex), ":")
			Set lobjTest = Server.CreateObject(lstrPairAry(0))
			If Err Then
				Err.Clear
			Else
				lstrInstalled = lstrInstalled & lstrProgIDAry(llngIndex) & ";"
			End If
		Next
		
		If Right(lstrInstalled, 1) = ";" Then
			lstrInstalled = Left(lstrInstalled, Len(lstrInstalled) - 1)
		End If
		
		Installed = lstrInstalled
		
	End Property	
	Public Sub Send()
		
		If ProgID = "" Then 
			Call Err.Raise(vbObjectError + 1, "clsEmail.asp", "The ProgID has not been defined.")
			Exit Sub
		End If
		
		Dim lobjMailer
		
		Set lobjMailer = Server.CreateObject(ProgID)
		
		If SenderName = "" Then SenderName = SenderAddress
		If RecipientName = "" Then RecipientName = RecipientAddress
		
		Select Case LCase(ProgID)
			Case "cdonts.newmail"
				lobjMailer.From		= SenderName & "<" & SenderAddress & ">"
				lobjMailer.To		= RecipientName & "<" & RecipientAddress & ">"
				lobjMailer.Subject	= Subject
				lobjMailer.Body		= Message
				lobjMailer.Send()
			Case "smtpsvg.mailer"
				Call lobjMailer.AddRecipient(RecipientName, RecipientAddress)
				lobjMailer.RemoteHost	= Host
				lobjMailer.FromAddress	= SenderAddress
				lobjMailer.FromName		= SenderName
				lobjMailer.Subject		= Subject
				lobjMailer.BodyText		= Message
				lobjMailer.SendMail
			Case Else
				Call Err.Raise(vbObjectError + 2, "clsEmail.asp", "The ProgID """ & ProgID & """ is not registered.")
		End Select
		
		Set lobjMailer = Nothing
	End Sub
End Class
' ------------------------------------------------------------------------------
%>
Comentarios originales (3)
Recuperado de Wayback Machine