ASP mailing script not sending mail

Discussion in 'Scripting' started by SteveH, Oct 22, 2008.

  1. SteveH

    SteveH Guest

    Hello

    I have the following script which notfies the Webmaster when a user logs on.

    I have contacted my hosting service which has provided details of SMTP_USER
    and SMTP_PASS and the SMTP_PORT details.

    The log-on script users a txt file with the following log-on details: user
    name: gates; user's password: bill. Using this user name and password I am
    suvccessfully redirected to a 'successful log-on' page.

    The problem I am having is that no mail is actually sent to ADMIN_EMAIL.

    Are there any obvious errors in the script, please, as I do not get any
    server error messages.

    Many thanks.

    Steve

    ' Please indicate where notifications should be sent
    Const ADMIN_EMAIL = ""

    ' Please provide the following details for your SMTP server
    Const SMTP_SERVER="mail.myServer.com"
    Const SMTP_PORT = 25

    ' If your SMTP server requires authentication, please set
    ' USE_AUTHENTICATION to True and supply a username and password
    Const USE_AUTHENTICATION = True
    Const SMTP_USER=""
    Const SMTP_PASS="bill"

    ' If your SMTP server uses Secure Password Aunthentication, please
    ' set the following value to True.
    Const SMTP_SSL = False

    ' Set this value to true while testing
    Const ENABLE_DEBUGGING = False

    ' Do not change anything below this line
    Set WshNetwork = CreateObject("WScript.Network")

    dteTime = Time
    dteDate = Date

    strMessage = "A user has logged onto <b>" & ComputerName & "</b> from <b>" &
    WAN_IP & "</b> with the following details:<br><br>" _
    & "Logon Date: " & dteDate & "<br>" _
    & "Logon Time: " & dteTime & "<br>" _
    & "Account Name: " & AccountName & "<br>" _
    & "LAN IP: " & LAN_IP & "<br>"

    result = SendMail(strMessage)

    If ENABLE_DEBUGGING Then WScript.Echo result
    WScript.Quit

    Function AccountName
    If IsNull(WshNetwork) Then Set WshNetwork = CreateObject("WScript.Network")
    AccountName = WshNetwork.UserName

    End Function

    Function ComputerName
    If IsNull(WshNetwork) Then Set WshNetwork = CreateObject("WScript.Network")
    ComputerName = WshNetwork.ComputerName

    End Function

    Function LAN_IP
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select IPAddress from
    Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE",,48)

    For Each objItem In colItems
    If Not IsNull(objItem.IPAddress) Then
    LAN_IP = objItem.IPAddress(0)
    Exit For
    End If
    Next

    End Function

    Function WAN_IP
    Set objxmlHTTP = CreateObject("Microsoft.XMLHTTP")
    Call objxmlHTTP.open("get", "http://checkip.dyndns.org", False)
    objxmlHTTP.Send()

    strHTMLText = objxmlHTTP.ResponseText
    Set objxmlHTTP = Nothing

    If strHTMLText <> "" Then
    varStart = InStr(1, strHTMLText, "Current IP Address:", vbTextCompare) + 19
    If varStart Then varStop = InStr(varStart, strHTMLText, "</body>",
    vbTextCompare)
    If varStart And varStop Then strIP = Mid(strHTMLText, varStart, varStop -
    varStart)

    Else
    strIP = "Unavailable"

    End If
    WAN_IP = Trim(strIP)

    End Function

    Function SendMail(strBody)
    Set objEmail = CreateObject("CDO.Message")
    With objEmail
    .From = ADMIN_EMAIL
    .To = ADMIN_EMAIL
    .Subject = "Logon Notification"
    .HTMLBody = strBody
    .Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTP_SERVER
    .Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") =
    SMTP_PORT
    If USE_AUTHENTICATION Then
    .Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/sendusername") =
    SMTP_USER
    .Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/sendpassword") =
    SMTP_PASS

    End If
    If SMTP_SSL Then
    .Configuration.Fields.Item _
    ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True

    End If
    .Configuration.Fields.Update

    On Error Resume Next
    Err.Clear

    .Send

    If Err.number <> 0 Then
    SendMail = Err.Description

    Else
    SendMail = "The server did not return any errors."

    End If
    On Error Goto 0

    End With

    End Function
     
    SteveH, Oct 22, 2008
    #1
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.