Παρακάτω παραθέτω μία procedure που μπορούμε να χρησιμοποιήσουμε για αποστολή Anonymous Email μέσω SMTP από τον SQL Server 2000
Προσοχή ο χρήστης πρέπει να έχει στην master δικαιώματα στίς παρακάτω procedures του SQL ή να είναι μέλος του sysadmin ή κάποιου άλλου group που του έχουμε δώσει δικαιώματα εκτέλεσης στις procedure.
Procedures SQL : sp_OACreate ,sp_OASetProperty ,sp_OADestroy ,sp_OAGetErrorInfo
Επίσης στό σημείο που δηλώνουμε τον SMTP SERVER αλλάζουμε το SERVERNAME μέ τό όνομα του δικού μας SERVER
CREATE PROCEDURE Smtp_SendMail_sp
(
@MailFrom as nvarchar(50),
@MailTo as nvarchar(50),
@MailSubject as nvarchar(255),
@MailBody as text
)
AS
-- Declare
DECLARE @msg int
DECLARE @config int
DECLARE @bo int
DECLARE @src varchar(255), @desc varchar(255)
/* Δημιουργία του message object */
EXEC @bo = sp_OACreate 'CDO.Message', @msg OUT
/* Δημιουργία του configuration object */
EXEC @bo = sp_OACreate 'CDO.Configuration', @config OUT
/* Configuration Object */
-- Αποστολή μυνήματος χρησιμοποιώντας τό ίκτυο
EXEC @bo = sp_OASetProperty @config, 'Fields(cdoSendUsingMethod)', 'cdoSendUsingPort'
-- Δήλωση του SMTP Server
EXEC @bo = sp_OASetProperty @config, 'Fields(cdoSMTPServer)', 'SERVERNAME'
-- Server SMTP Port
EXEC @bo = sp_OASetProperty @config, 'Fields(cdoSMTPServerPort)', 25
-- Anonymous SMTP Authenticate
EXEC @bo = sp_OASetProperty @config, 'Fields(cdoSMTPAuthenticate)', 'cdoAnonymous'
EXEC sp_OAMethod @config, 'Fields.Update'
/* Message Object */
EXEC @bo = sp_OASetProperty @msg, 'Configuration', @config -- set message.configuration = config
EXEC @bo = sp_OASetProperty @msg, 'To', @MailTo
EXEC @bo = sp_OASetProperty @msg, 'From', @MailFrom
EXEC @bo = sp_OASetProperty @msg, 'Subject', @MailSubject
EXEC @bo = sp_OASetProperty @msg, 'TextBody', @MailBody
EXEC sp_OAMethod @msg, 'Send()'
/* Καταστροφή τών objects */
EXEC @bo = sp_OADestroy @msg
EXEC @bo = sp_OADestroy @config
-- Χειρισμός Λαθών
IF @bo <> 0
BEGIN
EXEC sp_OAGetErrorInfo @msg, @src OUT, @desc OUT
SELECT convert(varbinary(4),@bo) as ErrNo, @src as Source, @desc as Description
RETURN
END
---Τρόπος Εκτέλεσης
EXEC sp_SMTPemail '[email protected]', '[email protected]', 'Το Θέμα μου','Θα συναντηθούμε στο καφενείο του DotnetZone'
Ελπίζω να φανεί χρήσιμο σέ κάποιους .