This topic is locked

SEND EMAIL IF DATE IS PASSED

2/26/2009 12:11:20 PM
ASPRunnerPro General questions
M
mota author

Hi
I´m new in this, I need if left 5 days to one date send an email
example:
today is 26-02-2009 and i have in database 1-03-2009

I need that send an email
Somebody can help me

thks

Sergey Kornilov admin 2/27/2009

To run ASP script on timely fashion you need to utilize an external scheduler (Windows scheduler or similar).
Unfortunately this is something ASPRunnerPro cannot do.

C
clig 2/27/2009

Hi

I´m new in this, I need if left 5 days to one date send an email
example:
today is 26-02-2009 and i have in database 1-03-2009

I need that send an email
Somebody can help me

thks


You could create an asp email page to run on a schedule as previously mentioned or have vbscript run from within SQL Server or a scheduled event...
so the easy way to do this would be to create a view / query that does a DATEDIFF then call that query from script then use cdo or cdonts depending on your OS version...
An example using a DSNless connection) - chker.vbs - call this externally using CScript.exe or WScript.exe from AT - the query in the DB works out the DateDiff and returns any records that meat the criteria (in this case < 3 days before due date) - then you loop through if exists sending an email out for each record returned
Dim CN

Dim rsExists

set CN = CreateObject("ADODB.Connection")

CN.Open "Provider=SQLNCLI;Server=SERVERNAME;Database=DBNam;Uid=UserId;Pwd=Password;M

arsConn=yes;"

strSQLExists = "SELECT TicketNo, SYSType, CustomerNo, ProjectNo, Customer, Addr, Addr2, Addr3, City, DateEntered, EnteredBy, NTSSSkillset, SIMSRegion, SIMSTicketNo, Status, Priority, Severity, Description, SLADateTime, AssignedTo, Modified, TeamEmail, ManagerEmail FROM NTSS_Tickets_MonMAC_CCAT"

set rsExists = CreateObject("ADODB.Recordset")

rsExists.Open strSQLExists, CN

Do While Not rsExists.eof

txtTicketNo = rsExists("TicketNo")

txtSYSType = rsExists("SYSType")

txtCustomerNo = rsExists("CustomerNo")

txtProjectNo = rsExists("ProjectNo")

txtCustomer = rsExists("Customer")

txtAddr = rsExists("Addr")

txtAddr2 = rsExists("Addr2")

txtAddr3 = rsExists("Addr3")

txtCity = rsExists("City")

txtDateEntered = rsExists("DateEntered")

txtEnteredBy = rsExists("EnteredBy")

txtNTSSSkillset = rsExists("NTSSSkillset")

txtSIMSRegion = rsExists("SIMSRegion")

txtSIMSTicketNo = rsExists("SIMSTicketNo")

txtStatus = rsExists("Status")

txtPriority = rsExists("Priority")

txtSeverity = rsExists("Severity")

txtDescription = rsExists("Description")

txtSLADateTime = rsExists("SLADateTime")

txtAssignedTo = rsExists("AssignedTo")

txtModified = rsExists("Modified")

txtTeamEmail = rsExists("TeamEmail")

txtManagerEmail = rsExists("ManagerEmail")

Dim ObjSendMail

Set ObjSendMail = CreateObject("CDO.Message")

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing";) = 2

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver";) ="bcmsg"

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport";) = 25

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl";) = False

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout";) = 60

ObjSendMail.Configuration.Fields.Update

ObjSendMail.To = txtAssignedTo & ";" & txtEnteredBy & ";" & txtTeamEmail"

ObjSendMail.Subject = "NTSS - Assigned MAC Referral Ticket Notice - sent: " & Now() & " / System Type: " & txtSYSType & " / Customer: " & txtCustomer & " / NTSS Ticket No: " & txtTicketNo

ObjSendMail.From = "NTSSUpdate@foobar.com"

ObjSendMail.HTMLBody = "<font color=#49166D><b>NTSS - Assigned MAC Referral Ticket Notice: due < 3 days </b></font>" & "

" & "<font color=#49166D><b>System Type: </b></font>" & txtSYSType & "

" & "<font color=#49166D><b>Customer: </b></font>" & txtCustomer & " - " & txtAddr & " - " & txtAddr2 & " - " & txtAddr3 & " - " & txtCity

ObjSendMail.Send

Set ObjSendMail = Nothing

rsExists.MoveNext

Loop

rsExists.Close

set rsExists = Nothing

set CN = Nothing
Sample Query doing the DateDiff in SQL Server 2005) - In SQL Server you could simply and reliably run a scheduled scenario like this by creating it as an ActiveX script in an Agent Job...
SELECT TOP (100) PERCENT dbo.NTSS_Tickets.TicketNo, dbo.NTSS_Tickets.SYSType, dbo.DIALUP1.[REL & ISS] AS [REL-ISS], dbo.NTSS_Tickets.CustomerNo,

dbo.NTSS_Tickets.ProjectNo, dbo.NTSS_Tickets.Customer, dbo.DIALUP1.Address AS Addr, dbo.DIALUP1.[Flr/Suite] AS Addr2,

dbo.DIALUP1.Povince AS Addr3, dbo.DIALUP1.City, dbo.NTSS_Tickets.SIMSNotes, dbo.NTSS_Tickets.DateEntered,

NTSS_USERS_1.Email AS EnteredBy, dbo.NTSS_Tickets.SIMSTech, dbo.NTSS_Tickets.NTSSSkillset, dbo.NTSS_Tickets.SIMSRegion,

dbo.DIALUP1.Branch, dbo.DIALUP1.TerrNum, dbo.DIALUP1.BusUnit, dbo.NTSS_Tickets.SIMSTicketNo, dbo.NTSS_Tickets.OtherTicketNo,

dbo.NTSS_Tickets.RelatedTicketNo, dbo.NTSS_Tickets.Engagement, dbo.NTSS_Tickets.ITIL, dbo.NTSS_Tickets.Status, dbo.NTSS_Tickets.Priority,

dbo.NTSS_Tickets.Severity, dbo.NTSS_Tickets.Description, dbo.NTSS_Tickets.SLADateTime, dbo.NTSS_Tickets.ExtraDetail,

dbo.NTSS_Users_MEmail.Email AS AssignedTo, dbo.NTSS_Tickets.DateAssigned, dbo.NTSS_Tickets.DateResolved,

dbo.NTSS_USERS.Email AS ResolvedBy, dbo.NTSS_Tickets.Resolution, dbo.NTSS_Tickets.ResolutionLocale, dbo.NTSS_Tickets.Conclusion,

dbo.NTSS_Tickets.Modified, dbo.NTSS_Users_MEmail.Manager, dbo.NTSS_SupportTeam.TeamEmail, dbo.NTSS_SupportTeam.ManagerEmail,

CONVERT(DateTime, SUBSTRING(dbo.NTSS_Tickets.Modified, CONVERT(int, CHARINDEX('-', dbo.NTSS_Tickets.Modified, 1)) + 1, 99), 101) AS Updated,

CONVERT(NVARCHAR, LEFT(dbo.NTSS_Tickets.Modified, CONVERT(int, CHARINDEX(N'-', dbo.NTSS_Tickets.Modified, 1)) - 1)) AS UpdatedBy

FROM dbo.DIALUP1 RIGHT OUTER JOIN

dbo.NTSS_Tickets LEFT OUTER JOIN

dbo.NTSS_SupportTeam ON dbo.NTSS_Tickets.NTSSSkillset = dbo.NTSS_SupportTeam.ROLE LEFT OUTER JOIN

dbo.NTSS_Users_MEmail ON dbo.NTSS_Tickets.AssignedTo = dbo.NTSS_Users_MEmail.LoginName ON

dbo.DIALUP1.Project = dbo.NTSS_Tickets.ProjectNo LEFT OUTER JOIN

dbo.NTSS_USERS ON dbo.NTSS_Tickets.ResolvedBy = dbo.NTSS_USERS.LoginName LEFT OUTER JOIN

dbo.NTSS_USERS AS NTSS_USERS_1 ON dbo.NTSS_Tickets.EnteredBy = NTSS_USERS_1.LoginName

WHERE (dbo.NTSS_Tickets.Status IN ('Referral', 'Open', 'MAC')) AND (NOT (dbo.NTSS_Users_MEmail.Email IS NULL)) AND

(dbo.NTSS_Tickets.NTSSSkillset = N'CSD CCAT') AND (dbo.NTSS_Tickets.Priority IN (N'MAC')) AND (DATEDIFF(dd, GETDATE(),

dbo.NTSS_Tickets.SLADateTime) < 3) OR

(dbo.NTSS_Tickets.Status IN (N'Referral', N'Open', N'MAC')) AND (NOT (dbo.NTSS_Users_MEmail.Email = N'')) AND

(dbo.NTSS_Tickets.NTSSSkillset = N'CSD CCAT') AND (dbo.NTSS_Tickets.Priority IN (N'MAC')) AND (DATEDIFF(dd, GETDATE(),

dbo.NTSS_Tickets.SLADateTime) < 3)