электронная почта от SQL ASP - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть веб-портал, основанный на базе данных SQL, который мы используем для обновления прогресса.Когда в очереди обновляется запись, веб-форма должна отправить сообщение электронной почты.

В настоящее время веб-портал не отправляет сообщение, и я не уверен в точке сбоя.Сам портал обновляется, так как я вижу обновленную запись в таблице 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 голосов
/ 29 апреля 2018

CDO может больше не поддерживаться MS - как сам Classic 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
%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...