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)