Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

interlokk

Pegar Email de Bd e enviar com AspEmail

Recommended Posts

Pô eu achei que seria fácil mas tô urrando pra pôr isso pra funcionar. É o seguinte: eu simplesmente quero pegar um endereço de email do BD e enviar uma mensagem para esse email. Eu to usando o seguinte código:

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%><!--#include file="../Connections/MyVBS.asp" --><%Dim Recordset1__MMColParamRecordset1__MMColParam = "1"If (Request.QueryString("COD") <> "") Then   Recordset1__MMColParam = Request.QueryString("COD")End If%><%Dim Recordset1Dim Recordset1_numRowsSet Recordset1 = Server.CreateObject("ADODB.Recordset")Recordset1.ActiveConnection = MM_MyVBS_STRINGRecordset1.Source = "SELECT COD, TITULO, NOME, EMAIL FROM neurodome.PROFISSIONAL WHERE COD = " + Replace(Recordset1__MMColParam, "'", "''") + ""Recordset1.CursorType = 0Recordset1.CursorLocation = 2Recordset1.LockType = 1Recordset1.Open()Recordset1_numRows = 0%><%	strEmail = Recordset1.Fields.Item("EMAIL").Value	strHost = "smtp.servidor.com.br"	If Request("Send") <> "" Then    Set Mail = Server.CreateObject("Persits.MailSender")  Mail.Host = strHost  Mail.From = Request("From")   Mail.FromName = Request("FromName")   Mail.AddAddress strEmail    Mail.Subject = Request("Subject")  Mail.Body = Request("Body")  strErr = ""  bSuccess = False  On Error Resume Next   Mail.Send	  If Err <> 0 Then   	strErr = Err.Description  else  	bSuccess = True  End If	End If%><% If strErr <> "" ThenResponse.Redirect("pro_envia-email_failure.html")End IfIf bSuccess ThenResponse.Redirect("pro_envia-email_confirm.html")End If %>

Esse código fica na mesma página onde está o form. O que ele faz é resgatar as informações de interesse através de uma conexão com o BD e por esta informações na página. A linha que poe o endereço de email como destinatário é:

Mail.AddAddress strEmail

strEmail está definido assim:

 

strEmail = Recordset1.Fields.Item("EMAIL").Value

a página abre normalmente e as variáveis aparecem normalmente mas na hora de enviar dá erro...Alguem pode me ajudar nessa? Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja nesse Link, depois poste o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom a mensagem é a seguinte:

 

ADODB.Field error '800a0bcd' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. /pro/pro_envia-email.asp, line 25

 

A linha 25 é a seguinte:

 

strEmail = Recordset1.Fields.Item("EMAIL").Value

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Cod que você está querendo selecionar não está no BD, coloque um IF "abraçando" toda a parte depois da conexão verificando se não é .EOF do RecordSet.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente com isso

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<!--#include file="../Connections/MyVBS.asp" -->

<%

Dim Recordset1__MMColParam

Recordset1__MMColParam = "1"

If (Request.QueryString("COD") <> "") Then

Recordset1__MMColParam = Request.QueryString("COD")

End If

%>

<%

Dim Recordset1

Dim Recordset1_numRows

 

Set Recordset1 = Server.CreateObject("ADODB.Recordset")

Recordset1.ActiveConnection = MM_MyVBS_STRING

Recordset1.Source = "SELECT COD, TITULO, NOME, EMAIL FROM neurodome.PROFISSIONAL WHERE COD = " + Replace(Recordset1__MMColParam, "'", "''") + ""

Recordset1.CursorType = 0

Recordset1.CursorLocation = 2

Recordset1.LockType = 1

Recordset1.Open()

 

Recordset1_numRows = 0

%>

<%

If Not Recordset1.EOF Then

strEmail = Recordset1.Fields.Item("EMAIL").Value

strHost = "smtp.servidor.com.br"

 

If Request("Send") <> "" Then

 

Set Mail = Server.CreateObject("Persits.MailSender")

Mail.Host = strHost

 

Mail.From = Request("From")

Mail.FromName = Request("FromName")

Mail.AddAddress strEmail

 

Mail.Subject = Request("Subject")

Mail.Body = Request("Body")

 

strErr = ""

bSuccess = False

On Error Resume Next

Mail.Send

If Err <> 0 Then

strErr = Err.Description

else

bSuccess = True

End If

End If

%>

<% If strErr <> "" Then

Response.Redirect("pro_envia-email_failure.html")

End If

If bSuccess Then

Response.Redirect("pro_envia-email_confirm.html")

End If

Else

Response.Write("Ouve um erro na seleção do email na Base de Dados!")

End If%>

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.