Ir para conteúdo

Arquivado

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

jul14no

CDOSYS + ASP: email sendo enviado com link quebrado

Recommended Posts

Pessoal, boa noite.

 

Tenho uma aplicação em ASP.

 

Nela, tenho um formulario de cadastro que é validado com envio de e-mail, tipo como é feito aqui no i-master.

O problema que estou tendo é que quando monto o e-mail usando asp e o envio, algumas partes do e-mail aparece com espaços em branco entre as letras.

 

O problema nao seria tao serio se apenas isso ocorresse em texto comum, o problema é que de vez em quando aparecem no meio de um link e o link fica quebrado.

 

Ai a pessoa, que normalmente nao repara nisso, e ate mesmo pq muitas vezes o endereço nao aparece no link, acaba nao validando o seu cadastro.

 

Alquem ja passou por isso e tem a solucao???

 

 

Ah, eu uso ASP e CDO para enviar mensagens

 

atenciosamente

 

Juliano

Compartilhar este post


Link para o post
Compartilhar em outros sites

mostre como você esta recuperando a variavel que cria o email

Compartilhar este post


Link para o post
Compartilhar em outros sites

strMensagem = ""

strMensagem = strMensagem & "<table width='600' border='0' cellspacing='0' cellpadding='0' style='margin:20px;'>"
strMensagem = strMensagem & "	<tr><td align='center'>"
strMensagem = strMensagem & "	<div style='WIDTH: 219px; HEIGHT: 124px; PADDING-TOP: 5px; PADDING-BOTTOM: 20px; '>"
strMensagem = strMensagem & "	<a href='http://" & Request.ServerVariables("server_name") & "/index.asp?uid=" & strIndicando & "' title='Anttenado - Ofertas de outro mundo'>"
strMensagem = strMensagem & "	<img style='WIDTH: 219px; HEIGHT: 124px; PADDING-TOP: 5px;' src='http://" & Request.ServerVariables("server_name") & "/images/Anttenado_Indicacao.jpg' title='Anttenado - Ofertas de outro mundo' alt='Anttenado - Ofertas de outro mundo' /></a></div>"
strMensagem = strMensagem & "	<BR></td></tr>"
strMensagem = strMensagem & "	<tr>"
strMensagem = strMensagem & "</table>"

strMensagem = strMensagem & "<table width='600'cellspacing='0' cellpadding='0' style ='BORDER: #ccc 1px dashed; background-color: #f2f2f2; padding: 10px; WIDTH: 600px; margin:20px; COLOR: #3e61b5; ALIGN: center;'>"
strMensagem = strMensagem & "	<tr>"
strMensagem = strMensagem & "		<td align='center' style='BORDER: #ccc 0px dotted; padding: 10px;'>" & strMSG & "</td>"
strMensagem = strMensagem & "	</tr>"
strMensagem = strMensagem & "</table>"


strMensagem = strMensagem & "<div style='margin-left: 20px; height: 92px; border: 0px;position:relative; background: transparent;'>"
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/teatro.gif' width='100' height='92' style='TOP:0px; left:0px;' />"
[b]strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/sanduba.jpg' width='100' height='92' style='TOP:0px; left:105px;' />"[/b]
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/sushi.gif' width='100' height='92' style='TOP:0px; left:210px;' />"
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/esporte.jpg' width='100' height='92' style='TOP:0px; left:315px;' />"
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/massagem.jpg' width='100' height='92' style='TOP:0px; left:420px;' />"
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/hotel.jpg' width='100' height='92' style='TOP:0px; left:525px;' />"
strMensagem = strMensagem & "</div>"

response.write strMensagem

objCDOSYSMail.HTMLBody = strMensagem

if Request.ServerVariables("server_name") <> "localhost" then
	objCDOSYSMail.Send
end if

O erro esta acontecendo na linha em negrito. O http ta saindo ht th.

O espaço em branco sai em locais aleatórios (nao vi nenhuma lógica ainda)

 

mostre como você esta recuperando a variavel que cria o email

 

Essa hipótese ja foi descartada porque isso esta acontecendo em valores de variáveis do servidor. Veja abaixo

 

strMensagem = ""

strMensagem = strMensagem & "<table width='600' border='0' cellspacing='0' cellpadding='0' style='margin:20px;'>"
strMensagem = strMensagem & "	<tr><td align='center'>"
strMensagem = strMensagem & "	<div style='WIDTH: 219px; HEIGHT: 124px; PADDING-TOP: 5px; PADDING-BOTTOM: 20px; '>"
strMensagem = strMensagem & "	<a href='http://" & Request.ServerVariables("server_name") & "/index.asp?uid=" & strIndicando & "' title='Anttenado - Ofertas de outro mundo'>"
strMensagem = strMensagem & "	<img style='WIDTH: 219px; HEIGHT: 124px; PADDING-TOP: 5px;' src='http://" & Request.ServerVariables("server_name") & "/images/Anttenado_Indicacao.jpg' title='Anttenado - Ofertas de outro mundo' alt='Anttenado - Ofertas de outro mundo' /></a></div>"
strMensagem = strMensagem & "	<BR></td></tr>"
strMensagem = strMensagem & "	<tr>"
strMensagem = strMensagem & "</table>"

strMensagem = strMensagem & "<table width='600'cellspacing='0' cellpadding='0' style ='BORDER: #ccc 1px dashed; background-color: #f2f2f2; padding: 10px; WIDTH: 600px; margin:20px; COLOR: #3e61b5; ALIGN: center;'>"
strMensagem = strMensagem & "	<tr>"
strMensagem = strMensagem & "		<td align='center' style='BORDER: #ccc 0px dotted; padding: 10px;'>" & strMSG & "</td>"
strMensagem = strMensagem & "	</tr>"
strMensagem = strMensagem & "</table>"


strMensagem = strMensagem & "<div style='margin-left: 20px; height: 92px; border: 0px;position:relative; background: transparent;'>"
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/teatro.gif' width='100' height='92' style='TOP:0px; left:0px;' />"
[b]strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/sanduba.jpg' width='100' height='92' style='TOP:0px; left:105px;' />"[/b]
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/sushi.gif' width='100' height='92' style='TOP:0px; left:210px;' />"
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/esporte.jpg' width='100' height='92' style='TOP:0px; left:315px;' />"
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/massagem.jpg' width='100' height='92' style='TOP:0px; left:420px;' />"
strMensagem = strMensagem & "	<img src='http://" & Request.ServerVariables("server_name") & "/images/hotel.jpg' width='100' height='92' style='TOP:0px; left:525px;' />"
strMensagem = strMensagem & "</div>"

response.write strMensagem

objCDOSYSMail.HTMLBody = strMensagem

if Request.ServerVariables("server_name") <> "localhost" then
	objCDOSYSMail.Send
end if

O erro esta acontecendo na linha em negrito. O http ta saindo ht th.

O espaço em branco sai em locais aleatórios (nao vi nenhuma lógica ainda)

E de vez em quando ele coloca o %20 (espaço em branco em urlencode)

 

To perdido, nao sei mais onde procurar uma soluçao

 

Verifique seu code, as vezes podem ter espaços no texto que compõe esse e-mai e que não percebemos numa primeira olhada

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando escreve a linha:

strMensagem = strMensagem & "   <img src='http://" & Request.ServerVariables("server_name") & "/images ...

testa

strMensagem = strMensagem & "   <img src='http://"&Request.ServerVariables("server_name")&"/images ...

Veja como está recebendo os dados do Request.ServerVariables("server_name") dependendo de como está vindo essa informação um tratamento com replace pode ser que resolva.

Compartilhar este post


Link para o post
Compartilhar em outros sites

as duas linhas estão iguais

strMensagem = strMensagem & " <img src='http://"&Request.ServerVariables("server_name")&"/images ...

strMensagem = strMensagem & " <img src='http://" & Request.ServerVariables("server_name") & "/images ...

 

aparenemente esta correta a linha

strMensagem = strMensagem & "        <img src='http://" & Request.ServerVariables("server_name") & "/images/sanduba.jpg' width='100' height='92' style='TOP:0px; left:105px;' />"

veja se tem o arquivo sanduba.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Note que a diferença entre o primeiro e no segundo, é que no segundo não tem espaços no request.

 

Mas de forma geral não deveria ser essa a causa do erro, mas postei mais para eliminar possibilidades.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, tem o arquivo sanduba.jpg

 

Veja bem, a questao do texto Request.ServerVariables("server_name") foi só coincidência ter colocado os espaços no valor dessa variável. Acontece as vezes de simplesmene eu ter um texto, como por exemplo:

 

strMensagem = strMensagem & "<li>Esse é um exemplo</li>"

 

e quando forma o e-mail ele escreve:

<li>Esse é um exe mplo</li>"

 

simplesmente mete um espaço em banco do nada no meio do texto, de forma aleatória

 

é, ta dificil, rsrsrs.

 

Bom pessoal, acredito muito que alguem conseguira me ajudar.

Se tiverem mais duvidas, postem.

 

atenciosamente

 

Juliano

 

as duas linhas estão iguais

 

strMensagem = strMensagem & " <img src='http://"&Request.ServerVariables("server_name")&"/images ...

strMensagem = strMensagem & " <img src='http://" & Request.ServerVariables("server_name") & "/images ...

 

aparenemente esta correta a linha

strMensagem = strMensagem & "        <img src='http://" & Request.ServerVariables("server_name") & "/images/sanduba.jpg' width='100' height='92' style='TOP:0px; left:105px;' />"

veja se tem o arquivo sanduba.jpg

 

Veja bem, a questao do texto Request.ServerVariables("server_name") foi só coincidência ter colocado os espaços no valor dessa variável. Acontece as vezes de simplesmene eu ter um texto, como por exemplo:

 

strMensagem = strMensagem & "<li>Esse é um exemplo</li>"

 

e quando forma o e-mail ele escreve:

<li>Esse é um exe mplo</li>"

 

simplesmente mete um espaço em banco do nada no meio do texto, de forma aleatória

 

é, ta dificil, rsrsrs.

 

Bom pessoal, acredito muito que alguem conseguira me ajudar.

Se tiverem mais duvidas, postem.

 

atenciosamente

 

Juliano

 

Note que a diferença entre o primeiro e no segundo, é que no segundo não tem espaços no request.

 

Mas de forma geral não deveria ser essa a causa do erro, mas postei mais para eliminar possibilidades.

 

Veja bem, a questao do texto Request.ServerVariables("server_name") foi só coincidência ter colocado os espaços no valor dessa variável. Acontece as vezes de simplesmene eu ter um texto, como por exemplo:

 

strMensagem = strMensagem & "<li>Esse é um exemplo</li>"

 

e quando forma o e-mail ele escreve:

<li>Esse é um exe mplo</li>"

 

simplesmente mete um espaço em banco do nada no meio do texto, de forma aleatória

 

é, ta dificil, rsrsrs.

 

Bom pessoal, acredito muito que alguem conseguira me ajudar.

Se tiverem mais duvidas, postem.

 

atenciosamente

 

Juliano

 

Note que a diferença entre o primeiro e no segundo, é que no segundo não tem espaços no request.

 

Mas de forma geral não deveria ser essa a causa do erro, mas postei mais para eliminar possibilidades.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, olá pessoal.

 

Ninguém conseguiu resolver essa questão? Está acontecendo o mesmo comigo. Aparece um espaço no meio do texto do e-mail. Estou usando o AspEMail.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo... para um melhor suporte devido este poste ser de 2010, aconselhamos a criar um novo. E poste seu código e errp atual nele.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Boa tarde senhores, sei que este tópico é antigo, mas eu tinha um problema igual a este que foi solucionado, segue o que foi feito:
Foi adicionado comandos formatadores do conteúdo do e-mail conforme abaixo:
objCDOSYSMail.MIMEFormatted = True
objCDOSYSMail.BodyPart.ContentTransferEncoding = "quoted-printable"
Segue o código completo e que está funcionando muito bem em ASP Classic em um servidor com Windows 2012:
<%

Response.Buffer = True
Dim CorpoMensagem
Dim EmailOrigem : EmailOrigem = "email@origem.com.br" 'nesta linha insira o e-mail que está enviando a mensagem
Dim EmailDestino : EmailDestino = "email@destino.com.br" 'nesta linha insira o e-mail que receberá esta mensagem
Dim ResponderPara : ResponderPara = "email@responderpara.com.br" 'se o e-mail que será usado para receber as respostas for diferente do emails de origem, insira nesta linha
Dim AssuntoEmail : AssuntoEmail = "Assunto" 'o assunto do e-mail
CorpoMensagem = CorpoMensagem&"aqui vai toda sua mensagem em HTML" 'aqui irá o seu conteúdo completo HTML, mas uma dica muito importante é que a hospedagem em ambiente Windows permite apenas 990 caracteres por linha para o envio de e-mails, por isto separe em blocos CorpoMensagem = CorpoMensagem&"", contando os espaços

Set objCDOSYSMail = Server.CreateObject("CDO.Message")  'cria o objeto CDOSYS
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration") 'cria o objeto para configuração do SMTP

objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.seuprovedor.com.br" 'servidor SMTP que será utilizado para enviar o e-mail
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587  'porta do SMTP, tem provedor que usa 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'porta do CDOSYS
objCDOSYSCon.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False 'utilização de SSl, habilitar caso o servidor de SMTP exija utilização do mesmo
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'ativar o recurso de SMTP autenticado
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "email@seuprovedor.com.br" 'usuário para autenticar o SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "suasenha" 'senha do usuário para autenticar o SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 'timeout de conexão com o Servidor SMTP
objCDOSYSCon.Fields.update

Set objCDOSYSMail.Configuration = objCDOSYSCon 'atualiza a configuração do CDOSYS para envio do e-mail

objCDOSYSMail.MIMEFormatted = True 'esta linha e a linha de baixo foram as responsáveis por solucionar o meu problema.
objCDOSYSMail.BodyPart.ContentTransferEncoding = "quoted-printable" 'esta linha também foi responsável por solucionar o meu problema.
objCDOSYSMail.From = EmailOrigem
objCDOSYSMail.To = EmailDestino
objCDOSYSMail.ReplyTo = ResponderPara
objCDOSYSMail.Subject = AssuntoEmail
objCDOSYSMail.Cc= "email@copiadamensagem.com.br" 'configura o Cc(Com Cópia)
objCDOSYSMail.Bcc= "email@copiaoculta.com.br"  'configura o Bcc(Com Cópia Oculta)
objCDOSYSMail.AddAttachment "e:\home\FTP\Nome_Do_Arquivo" 'enviado um arquivo em Anexo
objCDOSYSMail.BodyPart.Charset = "UTF-8"  'para definir o charset da mensagem	
objCDOSYSMail.HtmlBody = CorpoMensagem  'para enviar mensagens no formato HTML, se for texto simples, use objCDOSYSMail.TextBody
objCDOSYSMail.Send 'envia o e-mail

'após o envio do formulário, não podemos esquecer de destruir os objetos criados:
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing

%>

Espero que ajude, um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando for assim, ao invés de usar um tópico antigo... crie um novo como dica

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.