Ir para conteúdo

Arquivado

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

Hebe

[Resolvido] Formulario com CDO

Recommended Posts

Boa tarde! Pequei esse código de formulário na Internet que funciona perfeitamente, mas ele não tem os input para remetente e destinatário... como posso modificar esse codigo para ter os inputs para remetente, emailremetente, destinatário e emaildestinatario? Obrigada http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

<%sub enviarEmail(remetente,emailremetente,destinatario,emaildestinatario,assunto,texto)
	Const cdoSendUsingPickup = 1

	set iMsg = CreateObject("CDO.Message")
	set iConf = CreateObject("CDO.Configuration")

	set Flds = iConf.Fields

with Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=cdoSendUsingPickup
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="xxx"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout")=10
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")="xxx"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")="xxx"
.Update
	end With
	
	With iMsg
		Set .Configuration = iConf
		.To = destinatario & "<" & emaildestinatario & ">"
		.From = remetente & "<" & emailremetente & ">"
		.Subject = assunto
		.HtmlBody = texto
		.Send
	End With

	Set iMsg = Nothing
	Set iConf = Nothing
	Set Flds = Nothing
end sub


call enviarEmail("remetente aqui","emailremetente aqui","destinatario aqui","emaildestinatario aqui","teste","teste do indique")%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

as variáveis são alimentadas através do método POST de algum formulário e resgatadas pela função request.form() do ASP

 

destinatario = request.form("campo_destinatario")
emaildestinatario = request.form("campo_email_destinatario")
remetente = request.form("campo_remetente")
emailremetente = request.form("campo_email_remetente")
assunto = request.form("assunto")
texto = request.form("texto")

dentro da chamada CALL, você tira as aspas que ele é alimentado

call enviarEmail(remetente,emailremetente,destinatario,emaildestinatario,assunto,texto)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada Ted k'... Eu fiz como você falou mas deu esse erro:

CDO.Message.1 error '8004020d'

 

At least one of the From or Sender fields is required, and neither was found.

 

indique.asp, line 31

 

<%destinatario = request.form("campo_destinatario")
emaildestinatario = request.form("campo_email_destinatario")
remetente = request.form("campo_remetente")
emailremetente = request.form("campo_email_remetente")
assunto = request.form("assunto")
texto = request.form("texto")

	Const cdoSendUsingPickup = 1

	set iMsg = CreateObject("CDO.Message")
	set iConf = CreateObject("CDO.Configuration")

	set Flds = iConf.Fields

with Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=cdoSendUsingPickup
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="xxx"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout")=10
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")="xxx"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")="xxx"
.Update
	end With
	
	With iMsg
		Set .Configuration = iConf
		.To = destinatario & "<" & emaildestinatario & ">"
		.From = remetente & "<" & emailremetente & ">"
		.Subject = assunto
		.HtmlBody = texto
		.Send
	End With

	Set iMsg = Nothing
	Set iConf = Nothing
	Set Flds = Nothing%>

<form action="indique.asp?mode=doit"method="post">
<input type="text"name="remetente">
<input type="text"name="emailremetente">
<input type="text"name="destinatario">
<input type="text"name="emaildestinatario">
<input type="text"name="assunto">
<input type="text"name="texto">
<input type="submit"value="Enviar"></form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

está meio ERRADO, tente assim

 

<form action="indique.asp?mode=doit"method="post">
<input type="text"name="remetente">
<input type="text"name="emailremetente">
<input type="text"name="destinatario">
<input type="text"name="emaildestinatario">
<input type="text"name="assunto">
<input type="text"name="texto">
<input type="submit"value="Enviar"></form>

<%
if request.querystring("mode") = "doit" then

destinatario = request.form("campo_destinatario")
emaildestinatario = request.form("campo_email_destinatario")
remetente = request.form("campo_remetente")
emailremetente = request.form("campo_email_remetente")
assunto = request.form("assunto")
texto = request.form("texto")

	Const cdoSendUsingPickup = 1

	set iMsg = CreateObject("CDO.Message")
	set iConf = CreateObject("CDO.Configuration")

	set Flds = iConf.Fields

with Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=cdoSendUsingPickup
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="xxx"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout")=10
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")="xxx"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")="xxx"
.Update
	end With
	
	With iMsg
		Set .Configuration = iConf
		.To = destinatario & "<" & emaildestinatario & ">"
		.From = remetente & "<" & emailremetente & ">"
		.Subject = assunto
		.HtmlBody = texto
		.Send
	End With

	Set iMsg = Nothing
	Set iConf = Nothing
	Set Flds = Nothing

response.write("enviado com sucesso!!!")
end if
%>

agora uma observação...

configure essas linhas de acordo com o seu servidor: como smpt, e-mail, senha

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=cdoSendUsingPickup
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="xxx"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout")=10
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")="xxx"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")="xxx"

Compartilhar este post


Link para o post
Compartilhar em outros sites

OI Ted k', eu ja configurei os smpt, e-mail, senha so nao coloquei porque sao dados pessoais certo... fiz as mudancas sugeridas mas acorreu esse erro apos apertar o botao enviar.

CDO.Message.1 error '8004020d'

 

At least one of the From or Sender fields is required, and neither was found.

 

/noticia/indique.asp, line 43

 

A linha 43 e essa: .HtmlBody = texto

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente esse aqui que é a mesma coisa , só que alimento diretamente os objetos: deve ser por não usar HTML, tente o TextBody...

Set objCDOSYSMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject("CDO.Configuration")
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objCDOSYSCon.Fields.update
set objCDOSYSMail.Configuration = objCDOSYSCon

objCDOSYSMail.From = remetente & "<" & emailremetente & ">"
objCDOSYSMail.To = destinatario & "<" & emaildestinatario & ">"
objCDOSYSMail.Subject = assunto
objCDOSYSMail.TextBody = texto
objCDOSYSMail.Send

Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing

response.write("enviado com sucesso!!")

não esquece os IF!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz todas as mudancas mas o erro continua:

 

CDO.Message.1 error '8004020d'

 

At least one of the From or Sender fields is required, and neither was found.

 

/noticia/indique.asp, line 36

 

Erro na linha: objCDOSYSMail.TextBody = texto

 

<form action="indique.asp?mode=doit"method="post">c
 <input type="text"name="remetente"><br>
 <input type="text"name="emailremetente"><br>
 <input type="text"name="destinatario"><br>
 <input type="text"name="emaildestinatario"><br>
 <input type="text"name="assunto"><br>
 <textarea name="texto"></textarea><br>
 <input type="submit"value="Enviar"></form>
 
 <%if request.querystring("mode") = "doit" then
 
 destinatario = request.form("campo_destinatario")
 emaildestinatario = request.form("campo_email_destinatario")
 remetente = request.form("campo_remetente")
 emailremetente = request.form("campo_email_remetente")
 assunto = request.form("assunto")
 texto = request.form("texto")
 
 Const cdoSendUsingPickup = 1
 
 Set objCDOSYSMail = Server.CreateObject("CDO.Message")
 Set objCDOSYSCon = Server.CreateObject("CDO.Configuration")
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx"
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")="xxx"
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")="xxx"
 objCDOSYSCon.Fields.update
 set objCDOSYSMail.Configuration = objCDOSYSCon
 
 objCDOSYSMail.From = remetente & "<" & emailremetente & ">"
 objCDOSYSMail.To = destinatario & "<" & emaildestinatario & ">"
 objCDOSYSMail.Subject = assunto
 objCDOSYSMail.TextBody = texto
 objCDOSYSMail.Send
 
 Set objCDOSYSMail = Nothing
 Set objCDOSYSCon = Nothing
 
 response.write("enviado com sucesso!!")
 
 end if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada pela ajuda pessoal, principalmente para o Ted k'... consequi resolver hoje o problemas... mas estou tendo um outro com relacao a mensagem de erro... por exemplo... tenho essa mensagem para quando o e-mail e enviado com sucesso mas nao estou consequindo fazer uma mensagem para erro de envio...

if request.querystring("mode")="doit"then
 call enviarEmail(reqNomeRemetente,reqEmailRemetente,reqNomeDestinatario,reqEmailDestinatario,
 reqMensagem)
 response.write"A notícia foi enviado com sucesso!"
 response.end
 end if
Quando acrescento essa codigo abaixo entre response.write e o response.end

else
 response.write"Ocorreu um erro ao enviar a notícia!"
 end if
A mensagem de erro aparece logo de inicio no lugar do formulario...

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca dentro do IF, dentro desse:

 

if request.querystring("mode")="doit"then

assim ela só aparece quando for enviar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ma sfoi isso que fiz... veja

if request.querystring("mode")="doit"then
 call enviarEmail(reqNomeRemetente,reqEmailRemetente,reqNomeDestinatario,reqEmailDestinatario,
 reqMensagem)
 response.write"A notícia foi enviado com sucesso!"
else
 response.write"Ocorreu um erro ao enviar a notícia!"
 end if
 response.end
 end if

A mensagem "Ocorreu um erro ao enviar a notícia!" aparece logo quando aceso a pagina e nao quando ocorre um erro no envio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola

 

preciso de uma ajuda, no formulario CDO Sys, colocando o email do remetente (
objCDOSYSMail.From = remetente & "<" & emailremetente & ">") ao receber o email na caixa para vai o "email do remetente" , como faço para que ao inves do email do remetente na paixa para va o email preenchido no formulario.

 

assim qdo. for responder o email ja esta o email do cliente.

 

estava usando o
objCDOSYSMail.From = "" (assim em branco somente as "aspas" mas parou e começou a dar o erro

" "

CDO.Message.1 error '8004020d'

At least one of the From or Sender fields is required, and neither was found.

/formcdosys.asp, line 90

pode me ajudar por favor?

obrigada

 

tente esse aqui que é a mesma coisa , só que alimento diretamente os objetos: deve ser por não usar HTML, tente o TextBody...

Set objCDOSYSMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject("CDO.Configuration")
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objCDOSYSCon.Fields.update
set objCDOSYSMail.Configuration = objCDOSYSCon

objCDOSYSMail.From = remetente & "<" & emailremetente & ">"
objCDOSYSMail.To = destinatario & "<" & emaildestinatario & ">"
objCDOSYSMail.Subject = assunto
objCDOSYSMail.TextBody = texto
objCDOSYSMail.Send

Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing

response.write("enviado com sucesso!!")
não esquece os IF!!

 

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.