来自SQL ASP的电子邮件

时间:2018-04-25 16:13:35

标签: sql vbscript asp-classic html-email

我有一个基于SQL数据库的Web门户,我们用它来更新进度。当队列中的记录更新后,Web表单应该发送电子邮件消息。

目前门户网站没有发送消息,我不确定故障点。门户网站本身正在更新,因为我可以在SQL表中看到更新的记录。只是没有收到电子邮件。

更新04/27/18

所以我试图从一个新的大道上攻击它,它正在起作用....

我所做的,是使用php将表格发送到外部网站,它会发送电子邮件。

我想知道的是如何传递变量?我已经阅读了一个小时的说明,这对我来说没有意义。

基本上我想从以下查询中传递一个变量

thequery = "SELECT loginemail FROM users WHERE referrerId = " & request.Form("referrerID")  & ""
objRS.open thequery, objConn, adOpenStatic, adLockReadOnly

然后用类似的东西传递它

<form action="https://xxxxxx.com/hello.php?loginemail" method="post" name="updateclientform" id="updateclientform">

在php表单端,根据变量“loginemail”发送电子邮件

$to = trim(objRS("loginemail"));

有人帮忙吗?请

1 个答案:

答案 0 :(得分:0)

MS可能不再支持CDO - 就像经典ASP本身一样,但它仍然有效。我将研究在ASP应用程序中设置脚本以使用CDO发送邮件。这样您就可以更好地控制任何SQL注入威胁,并在一个地方管理整个过程。

以下是CDO邮件脚本示例。

<%
'* Declare mailobject variables.
Dim validEmail, email_to, objCDOMail, objConf

Sub SetMailObject()

  '* set up CDO config
  Set objConf=Server.CreateObject("CDO.Configuration")
  objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mysmtp.server.com"
  objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
  objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "myusername"
  objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mypassword"
  objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
  objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
  objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
  objConf.Fields.Update

  ' Create an instance of the NewMail object.
  Set objCDOMail = Server.CreateObject("CDO.Message")
  Set objCDOMail.Configuration=objConf
End Sub

Sub sendLoginEmail(email_to)

  '* Call Sub to set mail object settings
  SetMailObject()

  '* Set the mail objects
  objCDOMail.From = "myadmin@mydomain.com"
  objCDOMail.To = email_to
  objCDOMail.Bcc = ""
  objCDOMail.Subject = "My mail subject"
  objCDOMail.TextBody = "My email body"

  '* Send the message
  objCDOMail.Send

  '* Set the object to nothing
  Set objCDOMail = Nothing

End Sub

If Request("loginemail") <> "" Then
   validEmail = Request("loginemail")
   '* strongly suggest to perform some cleansing and validation of the email here
   Call sendLoginEmail(validEmail)
End If
%>