Ir para conteúdo

Arquivado

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

Gilberto Jr

Problemas com Charset Email

Recommended Posts

Boa tarde pessoal;

 

Bom, surgiu o problema aqui com a codificação das palavras que tem acentos na pagina que envio no e-mail.

 

Eu estou enviando o e-mail que mostra dos dados da pagina. Essa pagina faz um select e tras informacoes do banco de dados.

 

Segue o script que uso para enviar o e-mail

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Response.AddHeader "Content-Type", "text/html; charset=utf-8"
Response.AddHeader "Pragma", "no-cache"
response.Charset="utf-8"

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

 
 'Servidor SMTP que será utilizado para enviar o e-mail
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
 
 'Porta do SMTP
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport")= 25
 
 'Porta do CDOSYS
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
 
 'Timeout de conexão com o Servidor SMTP
 objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
 objCDOSYSCon.Fields.update
 
 'Atualiza a configuração do CDOSYS para envio do e-mail
 Set objCDOSYSMail.Configuration = objCDOSYSCon
  
'Configura o remetente do e-mail
 objCDOSYSMail.From = "Suporte TecnoGalli<suporte@tecnogalli.com.br>"
 
 'Configura o destinatário(TO)
 'objCDOSYSMail.To = "Gilberto Jr<gilberto@tecnogalli.com.br>;Caue Galli<caue@tecnogalli.com.br>;Rebbeca Afoumado<rebbeca@tecnogalli.com.br>;Wesley Brandes<wesley@tecnogalli.com.br>;Operacional<operacional@tecnogalli.com.br>"
 
 'Configura o Reply-To(Responder Para) 
 'objCDOSYSMail.ReplyTo = "gilberto@tecnogalli.com.br"
 
 'Configura o assunto(SUBJECT)
 objCDOSYSMail.Subject = "Atendimentos Por CR"
 
 'Configura o conteúdo da mensagem 
 objCDOSYSMail.CreateMHTMLBody "http://www.tecnogalli.com.br/consultoria/email_chamados_cr/emailcr.asp"
 'Configura o Cc(Com Cópia) 
 'objCDOSYSMail.Cc="gilberto@tecnogalli.com.br"
 
 'Configura o Bcc(Com Cópia Oculta)
 objCDOSYSMail.Bcc="Gilberto Jr<gilberto@tecnogalli.com.br>"
 
 ' ### ENVIA O E-MAIL ###
 objCDOSYSMail.Send

 Set objCDOSYSMail = Nothing
 Set objCDOSYSCon = Nothing
response.redirect("cr_email.asp?enviado=24")
%>

e na pagina http://www.tecnogalli.com.br/consultoria/email_chamados_cr/emailcr.asp esta com o charset utf-8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Mas quando eu olho a pagina pelo browser as informações esta tudo correto. Podem fazer o teste vendo a pagina ai. As palavras esta com acentos tudo normal. Mas quando o e-mail chega aqui pra mim as palavras que tem acentos vem tudo com caracteres especias.

 

Exemplo: REPARO ELETRÔNICO chega no e-mail REPARO ELETRÔNICO

Exemplo: RECUPERAÇÃO DE DADOS chega no e-mail RECUPERAÇÃO DE DADOS.

 

Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exactamente o meu problema mas no meu caso funciona com uns dados mas com outros nao.

 

Eu no meu tenho assim defenido

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Response.CacheControl = "no-cache" 
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1 
Response.ContentType = "text/html"
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
Response.CodePage = 65001
Response.CharSet = "UTF-8"


Como um dos selects funciona com os acentos e outro nao ainda pensei que fosse da bd mas as defenicoes sao exactamente iguais.

 

No meu caso o que aparece é:

 

parab�ns

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei essa informação acima na minha pagina que mostra dos dados e na pagina que envia o e-mail e não enviou e não deu certo.

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca isso na pag. emailcr

 

<%
Response.AddHeader "Content-Type", "text/html; charset=utf-8"
Response.AddHeader "Pragma", "no-cache"
response.Charset="utf-8"
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então XAN, eu coloquei na pagina emailcr.asp que é a página que pega as informações do banco de dado.

 

Veja o codigo

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Response.AddHeader "Content-Type", "text/html; charset=utf-8"
Response.AddHeader "Pragma", "no-cache"
response.Charset="utf-8"

dim conn
'Criamos o objeto de conexão
Set conn = Server.CreateObject("ADODB.Connection") 
 
'Abrimos uma conexão com o banco de dados - [IMPORTANTE] altere os dados abaixo com as informações de sua base de dados
conn.Open("DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=tecnogalli2;USER=tecnogalli2;PASSWORD=123456;OPTION=3;")
	'arquivo que checa se existe o login e a senha do usuario que esta tentando logar
	
function mask_data( obj )
		obj = CDAte( obj )
		dia = Day( obj  )
		mes = Month( obj )
		ano = Year( obj )
	
			if dia < 10 then
				dia = "0" & dia
			end if

			if mes < 10 then
				mes = "0" & mes
			end if
					
		 mask_data = ano &"-"& mes &"-"& dia
end function

set rs = conn.execute("select * from tec_c_responsabilidade where situacao=1")
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>..:: Sistema Galleu - Dados CR::..</title>
<style type="text/css">
*{
	margin:0px;
	padding:0px;
}
#conteudo{
	margin:auto;
	width:600px;
}
#conteudo table{
	margin:auto;
	width:600px;
}
</style>
</head>

<body>
<div id="conteudo">
<table border="1">
  <tr>
    <td class="chamadaprincipalemailcr" colspan="5">Atendimento por CR</td>
  </tr>
  <tr>
    <td width="223" class="chamadaemailcr" align="center">CR</td>
    <td width="52" class="chamadaemailcr" align="center">Total</td>
    <td width="60" class="chamadaemailcr" align="center">Atrasados</td>
    <td width="93" class="chamadaemailcr" align="center">Expirando em<br />Breve (3 dias)</td>
    <td width="138" class="chamadaemailcr" align="center">Gerente</td>
  </tr>
<%while rs.eof = false%>
  <tr>
    <td align="right"><%=rs("descricao")%> </td>
    <td align="center">
<%
set rstotal = conn.execute("select count(*) as total from tec_atendimentos where id_cr='"&rs("id")&"'")
%>
<%=rstotal("total")%>  
    </td>
    <td align="center">
<%
set rsatrasado = conn.execute("select count(*) as atrasado from tec_atendimentos where id_cr='"&rs("id")&"' and situacao in (1,3,5) and datalimite < '"&mask_data(Date)&"'")
%>
<%=rsatrasado("atrasado")%>  
    </td>
    <td align="center">
<%
set breve = conn.execute("select count(*) as embreve from tec_atendimentos where id_cr='"&rs("id")&"' and situacao in (1,3,5) and datalimite in('"&mask_data(Date)&"','"&mask_data(Date+1)&"','"&mask_data(Date+2)&"','"&mask_data(Date+3)&"')")
%>
<%=breve("embreve")%>  
    </td>
    <td align="center">
<%
set gerente = conn.execute("select * from usuarios where id='"&rs("id_responsavel")&"'")
%>
<%=gerente("nome")%>
    </td>
  </tr>
<%rs.movenext:wend%>
</table>
</div>

</body>
</html>

Agora veja a imagem das informações que chega no e-mailemailcr.png

Agora veja a imagem da informação olhando no browser.emailcr2.png

 

O que pode ser? Eu imaginei que fosse o charset do outlook mas ele esta como UTF-8.

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Confirma que a bd e as tabelas estao em utf-8 assim como a pagina esta codificada em utf8 without BOM.


Esperimenta esta função:

Function ConvertFromUTF8(sIn)

	Dim oIn: Set oIn = CreateObject("ADODB.Stream")

	oIn.Open
	oIn.CharSet = "WIndows-1252"
	oIn.WriteText sIn
	oIn.Position = 0
	oIn.CharSet = "UTF-8"
	ConvertFromUTF8 = oIn.ReadText
	oIn.Close

End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

quase acertou.

 

tire a linha

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

 

abaixo você coloca

<%

Response.ContentType = "text/html"
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
Response.CodePage = 65001
Response.CharSet = "UTF-8"
%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
strBody = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>"
strBody = strBody & "<html xmlns='http://www.w3.org/1999/xhtml'>"
strBody = strBody & "<head>"
strBody = strBody & "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />"
strBody = strBody & "<title>TITULO DA SUA PÁGINA</title>"
strBody = strBody & "</head>"
strBody = strBody & "<body>"
strBody = strBody & "<div align='left'>"
strBody = strBody & "<div>"
strBody = strBody & Msg
strBody = strBody & "</div>"
strBody = strBody & "</div>"
strBody = strBody & "</body>"
strBody = strBody & "</html>"
Variavel MSG seu conteúdo
e não esqueça de salvar a pagina como tal: no dream use Crrl + J (title/Encoding) como UTF-8

Compartilhar este post


Link para o post
Compartilhar em outros sites
razs

e

Ronaldo Bueno

o que aconteceu foi o seguinte. na minha tabela no mysql estava assim

Character set: latin1
Collation: latin1_swedish_ci

Dai eu alterei para UTF-8 e deu certo.

Character Set: utf8
Collation: utf8_swedish_ci

Estranho porque praticamente todas as minhas tabelas e banco de dados coloco com Character set: latin1

Collation: latin1_swedish_ci

 

Agora nas outras tabelas irei já colocar como padrão UTF-8.

 

Obrigado pela força.

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você realizou a migração do conteúdo de um banco de dados, algumas vezes, pode haver conflitos no collation do banco migrado. O resultado deste conflito é a ausência de caracteres especiais quando informações são consultadas no banco.

 

vc também pode fazer isso direto na SQL

 

ALTER DATABASE `base_de_dados` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

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.