Ir para conteúdo

POWERED BY:

Arquivado

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

TeixeiraRamos

Inclui um Listbox formulario parou

Recommended Posts

Salve, salve todos,

Tenho um formulário em uso, ou seja, estou recebendo e-mails via esse formulário, ele está criticando todos os campos sem problema.

Porém, tive necessidade de incluir mais um campo para saber qual o Estado de quem está me eviando.

 

Código do formulário "Contatos.html" sem o campo com a ListBox (Estado) funcionando (Todos os campos são obrigatórios):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
//<![CDATA[
window.onload = function(){
   	id('form1').onsubmit = function(){
           	var erro = 0;
           	erro = !obr( 'Nome' ) ? erro+1 : erro;
           	erro = !obr( 'Email' ) ? erro+1 : erro;
           	erro = !obr( 'Assunto' ) ? erro+1 : erro;
           	erro = !obr( 'Mensagem' ) ? erro+1 : erro;

        	if( !checkMail( id('Email') ) )

           	{

              	alert( 'Digite um email válido!' );

                  	return false;
           	}

           	if( erro>0 )
                   	return false;
   	};
};
function obr( campo ){
   	if( id(campo).value=='' || id(campo).value==0 ){
           	alert( 'O campo '+campo+' é obrigatório!' );
           	return false;

   	}
   	else
           	return true;


	if( id(campo).value==' ' || id(campo).value==0||id(campo).value=='Escolha uma opção/assunto'){
			alert( 'O campo '+campo+' é obrigatório!' );
			return false;
	}
	else
			return true;
	}

function id( el ){
   	return document.getElementById( el );
}
function checkMail(mail){
var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
if(typeof(mail) == "string"){
   	if(er.test(mail)){
       	return true; }
}else if(typeof(mail) == "object"){
   	if(er.test(mail.value)){
       	return true;
   	}
}else{
   	return false;
}
}
//]]>
</script>
   	<title>Blog Teixeira - Contato</title>

	<meta name="description" content="divulgar diversos assuntos" />
    	<link type="text/css" media="all" rel="stylesheet" href="css/formulario.css" />
</head>
<body>

   	<form method="post" id="form1" action="sendmail.asp" name="Inputform"/>
	<input type="hidden" name="email" value="carlos.teixeira@terra.com.br"/> 
		<table id="table">
           	<tbody>
               	<tr>
                   	<td id="td" colspan="2">
                    	<p class="p-top">Todas as mensagens serão lidas, analisadas e publicadas em seguida.<br />
                     	Muito Obrigado.<br />
		          	1 - Serão, automaticamente, descartados os comentários que contenham insultos, agressões e ofensas;<br/>
					  2 - que contenham qualquer espécie de anexo ou link, casos extremos contatar proprietário do site. </p>
				 	</td>
               	</tr>
               	<tr>
                   	<td  id="td-nome"><span>Nome:</span></td>
					<td><input type="text" name="name" id="Nome" size="60"/></td>
               	</tr>
               	<tr>
                   	<td id="td-email"><span>email:</span></td>
					<td><input type="text" name="mailfrom" id="Email" size="40"/></td>
              	</tr>
               	<tr>
                   	<td id="td-opcao"><span>Opção/assunto:</span></td>
                   	<td>
					<select name="Assunto" id="Assunto">
						<option value="0">Escolha uma opção/Assunto</option>
                    	<option value="Hobby">Hobby</option>
                       	<option value="Informática">Informática</option>
                       	<option value="Pesquisa">Pesquisa</option>
                       	<option value="Política">Política</option>
                       	<option value="Prestação de Serviços">Prestação de Serviços</option>
                       	<option value="Religião">Religião</option>
                    	<option value="Samba">Samba</option>
                   	</select>
					</td>
               	</tr>
               	<tr>
                   	<td id="td-mensagem"><span>Comentários:</span></td>
                   	<td>
					<textarea name="mensagem" cols="80" rows="10" id="Mensagem"></textarea> 
                   	</td>
               	</tr>
		<tr>
                   	<td class="td-mensagem"><span> </span></td>
                   	<td><input type="submit" name="Enviar" value="Enviar" />
						<input type="reset" value="Cancelar" /></td>
               	</tr>
           	</tbody>
       	</table>

   	</form>
</body>
</html>

 

Já esse formulário "Contatos.html" depois que inclui ListBox (Estado) não funcionou mais (Todos os campos são obrigatorios):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
//<![CDATA[
window.onload = function(){
   	id('form1').onsubmit = function(){
           	var erro = 0;
           	erro = !obr( 'Nome' ) ? erro+1 : erro;
           	erro = !obr( 'Estado' ) ? erro+1 : erro;
			erro = !obr( 'Email' ) ? erro+1 : erro;
           	erro = !obr( 'Assunto' ) ? erro+1 : erro;
           	erro = !obr( 'Mensagem' ) ? erro+1 : erro;

    			if( !checkMail( id('Email') ) )

           	{

      			alert( 'Digite um email válido!' );

          			return false;
           	}

           	if( erro>0 )
                   	return false;
   	};
};
function obr( campo ){
   	if( id(campo).value=='' || id(campo).value==0 ){
           	alert( 'O campo '+campo+' é obrigatório!' );
           	return false;

   	}
   	else
           	return true;


	if( id(campo).value==' ' || id(campo).value==0||id(campo).value=='Escolha uma opção/assunto'){
			alert( 'O campo '+campo+' é obrigatório!' );
			return false;
	}
	else
			return true;
	}

   	if( id(campo).value==' ' || id(campo).value==0||id(campo).value=='Estado'){
			alert( 'O campo '+campo+' é obrigatório!' );
			return false;
	}
	else
			return true;
	}



function id( el ){
   	return document.getElementById( el );
}
function checkMail(mail){
var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
if(typeof(mail) == "string"){
   	if(er.test(mail)){
       	return true; }
}else if(typeof(mail) == "object"){
   	if(er.test(mail.value)){
       	return true;
   	}
}else{
   	return false;
}
}
//]]>
</script>
   	<title>Blog Teixeira - Contato</title>

	<meta name="description" content="divulgar diversos assuntos" />
   	<meta http-equiv="Content-Type"  content="text/html; charset=utf-8" />
	<meta content="pt-br" name="language" />
   	<meta content="Teixeira" name="title" />
   	<link type="text/css" media="all" rel="stylesheet" href="css/geral.css" />
	<link type="text/css" media="all" rel="stylesheet" href="css/formulario.css" />
</head>
<body>
   	<form method="post" id="form1" action="sendmail.asp" name="Inputform"/>
	<input type="hidden" name="email" value="carlos.teixeira@terra.com.br"/> 
		<table width="986" id="table">
           	<tbody>
               	<tr>
                   	<td id="td" colspan="2">
            			<p class="p-top">Todas as mensagens serão lidas, analisadas e publicadas em seguida.<br />
                     	Muito Obrigado.<br />
          			1 - Serão, automaticamente, descartados os comentários que contenham insultos, agressões e ofensas;<br/>
			  		2 - que contenham qualquer espécie de anexo ou link, casos extremos contatar proprietário do site. </p>
	  			</td>
               	</tr>
               	<tr>
                   	<td  id="td-nome"><span>Nome:</span></td>
					<td><input type="text" name="name" id="Nome" size="60"/></td>
               	</tr>

        			<tr>
                   	<td id="td-estado"><span>Estado:</span></td>
                   	<td>
					<select name="Estado" id="Estado">
						<option value="0">Selecione</option>
                   		<option value="AC">AC</option>
                       	<option value="AL">AL</option>
                       	<option value="AM">AM</option>
                       	<option value="AP">AP</option>
                       	<option value="BA">BA</option>
                       	<option value="CE">CE</option>
                       	<option value="DF">DF</option>
                       	<option value="ES">ES</option>
                       	<option value="GO">GO</option>
                       	<option value="MA">MA</option>
                       	<option value="MG">MG</option>
                       	<option value="MS">MS</option>
                       	<option value="MT">MT</option>
                       	<option value="PA">PA</option>
                       	<option value="PB">PB</option>
                       	<option value="PE">PE</option>
                       	<option value="PI">PI</option>
                       	<option value="PN">PN</option>
                       	<option value="RJ">RJ</option>
                       	<option value="RN">RN</option>
                       	<option value="RO">RO</option>
                       	<option value="RR">RR</option>
                       	<option value="RS">RS</option>
                       	<option value="SC">SC</option>
                       	<option value="SE">SE</option>
                       	<option value="TO">TO</option>                                         			
                   	</select>
					</td>
               	</tr>

               	<tr> 

               	<tr>
                   	<td id="td-email"><span>email:</span></td>
					<td><input type="text" name="mailfrom" id="Email" size="40"/></td>
      			</tr>
               	<tr>
                   	<td id="td-opcao"><span>Opção/assunto:</span></td>
                   	<td>
					<select name="Assunto" id="Assunto">
						<option value="0">Escolha uma opção/Assunto</option>
                   		<option value="Hobby">Hobby</option>
                       	<option value="Informática">Informática</option>
                       	<option value="Pesquisa">Pesquisa</option>
                       	<option value="Política">Política</option>
                       	<option value="Prestação de Serviços">Prestação de Serviços</option>
                       	<option value="Religião">Religião</option>
                   		<option value="Samba">Samba</option>
                   	</select>
					</td>
               	</tr>
               	<tr>
                   	<td id="td-mensagem"><span>Comentários:</span></td>
                   	<td>
					<textarea name="mensagem" cols="80" rows="10" id="Mensagem"></textarea> 
                   	</td>
               	</tr>
		<tr>
                   	<td class="td-mensagem"><span> </span></td>
                   	<td><input type="submit" name="Enviar" value="Enviar" />
					<input type="reset" value="Cancelar" /></td>
             	</tr>
           	</tbody>
     	</table>

   	</form>
 	</body>
</html>

 

Digitando todos os campos aparece essa mensagem de erro:

[color=000000]Tipo de erro:
(0x8004020F)
A classe de evento dessa assinatura está em uma partição inválida 
[b]/meu novo site/sendmail.asp, line 66[/b][/color]

 

A página "sendmail.asp" tem o código: (E pasme a linha 66 está vazia, ou seja, não tem uma linha de código - na 65 é que tem "message.send" sem aspa)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Response.Charset="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<%
' Cria os objetos para envio de e-mail
Set message = Server.CreateObject("CDO.Message")
Set conf = Server.CreateObject("CDO.Configuration")
Set param = conf.Fields

param("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
param("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
param.Update

'Obtendo valores digitados no formulário e armazená-los nas variáveis locais
strFrom = Request.Form("mailfrom")
strTo = Request.Form("email")
strSubject = Request.Form("assunto")
strBody = Request.Form("mensagem")
strSubject = Request.Form("estado")


'Retira caracteres inválidos que possam ser inclusos por acesso não autorizado
'para envio de Spam
aux1 = chr(13)
aux2 = chr(10)
regex= " | |cc:|bcc:|"& aux1 &"|"& aux2
Set objRegExp = New RegExp
objRegExp.Pattern = regex
objRegExp.IgnoreCase = True
objRegExp.Global = True

strFrom = objRegExp.Replace(strFrom,"")
strTo = objRegExp.Replace(strTo,"")
strSubject = objRegExp.Replace(strSubject,"")

Set message.configuration = conf
'Atribui-se os valores para as propriedades do objeto
message.From = strFrom
message.To = strTo
message.Subject = StrSubject
message.textBody = "Mensagem: <br> <br>" & _
"Nome:   "& Request("name")& "<br>" & _
"Estado:   "& Request("estado")& "<br>" & _
"E-Mail:   "& Request("mailfrom")& "<br>" & _
"Assunto:   "& Request("assunto")& "<br>" & _
"Mensagem:   "& Request("mensagem")


message.HTMLBody = message.textBody 'Envia no formato HTML

' Outras propriedades que podem ser usadas, mas que deixaremos comentadas neste exemplo:
' - Você pode enviar e-mail HTML, arquivos anexados, etc;
' - Você pode mudar muitos aspectos da mensagem;
'message.HTMLBody = StrBody 'Envia no formato HTML
'message.Cc = "conta1@dominio.com.br;conta2@dominio.com.br" 'Com Cópia
'message.Bcc = "conta3@dominio.com.br;conta4@dominio.com.br" 'Com Cópia Oculta
'message.Fields("urn:schemas:httpmail:importance").Value = 2 '(0=Baixa, 1=Normal, 2=Alta)
'message.AddAttachment "I:InetpubWwwrootSuaContaNomeDoArquivo" 'Anexa arquivo na mensagem

' Envia a mensagem!
message.send

'Atribui nothing ao objeto para que ele se torna inválido imediatamente após o envio
'Não podendo ser utilizado dois "sends" para o mesmo objeto New Mail
Set message = nothing

Msg = "Mensagem enviada com sucesso!"

Response.Write "<html><body><table align=center><tr><td> </td></tr>"
Response.Write "<tr><td> </td></tr>"
Response.Write "<tr><td><font face=Verdana><b>"& Msg &"</b></font></td></tr>"
Response.Write "</body></html>"
%>
<%
Response.Redirect "http://informacaoteixeira.com.br/confirma_formulario.html"
%>
</head>

 

Onde eu observei que tinha que incluir o novo campo "Estado" em inclui.

Como que retirando esse campo ele funciona e com ele não?

 

Por favor, quem puder me ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, como vai? Se antes de incluir o novo campo funcionava corretamente, então o problema é na nova inclusão, por alto o que reparei é que você está recuperando dois valores e armazenando na mesma variável, veja na página de envio:

...

strFrom = Request.Form("mailfrom")

strTo = Request.Form("email")

strSubject = Request.Form("assunto")

strBody = Request.Form("mensagem")

strSubject = Request.Form("estado")

...

 

Descarte esta última que recupera o estado, pois esta, está sendo recuperada mais abaixo do código:

 

...

"Nome:   "& Request("name")& "<br>" & _

"Estado:   "& Request("estado")& "<br>" & _

"E-Mail:   "& Request("mailfrom")& "<br>" & _

...

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, tudo bem graças a Deus.

Descartei mas continua dando erro só que agora foi diretamente onde existe um código.:

[color=000000]Tipo de erro:
CDO.Message.1 (0x8004020D)
Pelo menos um dos campos 'De' ou 'Remetente' é necessário e nenhum deles foi encontrado. 
[b]/meu novo site/sendmail.asp, line 65[/b][/color]

 

A linha 65 do sendmail.asp é:

'Envia a mensagem!
message.send

 

Eu não digitei nada e cliquei em "Enviar". Anteriomente ia aparecendo mensagem pora todos os campos:

Tenta não preencher nenhum campo do que está aqui Clique aqui

Ele vai abrir informando.

O campo '+campo+' é obrigatório!' 

Para cada campo.

Eu deve ter deletado algum { ou ( ou ;

É como se não existisse mais a function obr( campo ). Mas não sei se é também isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só um detalhe, e pode ser que seja o do erro, favor verificar.

 

Alguns provedores só permitem o envio dos e-mails a partir de uma conta do próprio domínio, o que não é o caso, pois no seu código o e-mail de remetente é o do visitante, além do que se não for o caso, verifique se o mesmo está chegando corretamente.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso pode acontecer ao mudar de CDONTS para CDO.Message,Esta mensagem de erro vem de cdosys.h, e não tem nada a ver com qualquer espécie de "partição" - na verdade é confundido com outros erros em uma mensagem sobrecarregado. O código de erro é de fato atribuído ao seguinte:

 

CONST LONG CDO_E_RECIPIENTS_REJECTED = 0x8004020FL

 

O que significa que o e-mail foi rejeitado pelo servidor por algum motivo. Aqui estão algumas coisas que você pode tentar aliviar o problema:

 

Verifique se o servidor SMTP permite a retransmissão anônimo (não autenticada). Se o seu SMTP requer autenticação de saída

 

Verifique se o problema é específico para o nome de domínio (s) utilizado nos endereços de e-mail dos destinatários. Por exemplo, alguns usuários se queixaram de que eles podem enviar para os usuários em seus próprios domínios apenas, outros disseram que pode enviar para qualquer domínio, exceto os seus próprios.

 

Pode ser simplesmente que o endereço de e-mail está sendo rejeitado, mas outras definições de configuração no servidor SMTP estão impedindo a verdadeira mensagem de erro de ser retransmitida de volta para o script ASP ... para verificar se o endereço é válido.

 

Se você tiver um proxy ou firewall, verifique se o servidor web está configurado corretamente para passar por ele, que o servidor SMTP sabe sobre ele, e que o proxy permite o acesso a porta 25.

 

Tente usar um valor SendUsing de 1 (pickup) em vez de 2 (port). Por exemplo, a seguinte linha:

 

. Item (cdoSendUsingMethod) = cdoSendUsingPort

 

torna-se

 

. Item (cdoSendUsingMethod) = cdoSendUsingPickup

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.