Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

nuno_couto

e-mail

Mensagens Recomendadas

nuno_couto    0
nuno_couto

mail("to", "assunto","mensagem", "From: x \nContent-type: text/html\n");

Estou a usar este comando para enviar um email formatado com código html.

Funciona "quase" bem.

Quando o email de destino é iol (por exemplo) o texto surge com erros - os caracteres acentuados, "ç" entre outros ficam substituidos por simbolos ou desaparecem.

Mas se enviar para alguem com gmail por exemplo, funciona na perfeição.

Alguem sabe resolver?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

pa, isso e problema do servidor em questao, acho que a unica coisa a fazer e enviar mesmo sem acentos

Isso não é uma solução a sério para o problema...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nuno_couto    0
nuno_couto

Não pode ser isso... Há algum tempo atrás lembro-me que me aconteceu a mesma coisa (como utilizador) no gmail. Os emails que recebia de um site vinham com esses caracteres trocados. Neste caso no gmail dá tudo bem e o problema surge no IOL...

Não será desta expressão? \nContent-type: text/html\n

Será que não existe qualquer coisa que substitua?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nuno_couto    0
nuno_couto

Só com um print screen... É mais fácil explicar... Eu envio a seguinte mensagem:

Olá João.

A mensagem recebida tem um pequeno quadrado que eu vou representar com cardinal:

Ol# Jo#o.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

@nuno_couto tens que colocar    "Content-Type: text/html; charset=ISO-8859-1"

exemplo:

mail("to", "assunto","mensagem", "From: x \nContent-Type: text/html; charset=ISO-8859-1\n");

:D

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nuno_couto    0
nuno_couto

:/ Afinal não está assim tão perfeito... Eu ando a testar em vários emails e reparei que num email clix a mensagem é recebida em código html...

Não aparece o texto formatado mas sim o código.

Mas no IOL e no Gmail dá perfeitamente. Sabes o que se pode estar a passar?

Já agora... no Clix dá mal mesmo com este código: \nContent-type: text/html\n

Aparece sempre o código html em vez do texto formatado...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Spread    0
Spread

:/ Afinal não está assim tão perfeito... Eu ando a testar em vários emails e reparei que num email clix a mensagem é recebida em código html...

Não aparece o texto formatado mas sim o código.

Mas no IOL e no Gmail dá perfeitamente. Sabes o que se pode estar a passar?

Já agora... no Clix dá mal mesmo com este código: \nContent-type: text/html\n

Aparece sempre o código html em vez do texto formatado...

No clix tens que activar a opção para ver os email's em html (se ele tiver essa opção).

Cumps 8)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nuno_couto    0
nuno_couto

Não é isso... Para alem de não existir essa opção, estou a receber outros emails em html a funcionar bem.

Deve faltar qualquer coisa neste comando para o tornar compatível com todos os emails.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

Não é isso... Para alem de não existir essa opção, estou a receber outros emails em html a funcionar bem.

Deve faltar qualquer coisa neste comando para o tornar compatível com todos os emails.

Não podes colocar simplesmente "\n" tens que colocar "\r\n" assim:

//Para facilitar
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: email@email.com\r\n";

mail("para@email.com", "assunto","mensagem", $headers); 

Assim vai funcionar.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

Também ainda não percebi bem, mas em alguns casos o \n faz logo o \r automáticamente.

Se alguém puder explicar, também agradecia. :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HecKel    52
HecKel

Depende..., esse é um dos problemas do Windows vs Unix :P

Se fizeres um programa para escrever num ficheiro e o executares em windows e em Unix o ficheiro fica diferente :)

abraços, HecKel

PS: Isso já me deu dores de cabeça num trabalho em C :)

EDIT: Tenho ideia que já expliquei isso aqui no P@P, vou procurar a thread :)

EDIT2: http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=41870

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

Exacto, tinha uma ideia de que variava com o SO, porque às vezes existem certos ficheiros de texto que não funcionam no Notepad por não possuírem o \r.

Obrigado! :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

Vou tentar explicar....

O \r (retorno de carro) envia o cursor para o principio da frase, ou seja

<?php
$frase =  "Isto é uma\rfrase simples";
echo $frase;
?>

Isto vai mostrar apenas  Isto é uma em vez de mostrar Isto é uma frase simples  porque  o  " \r " fez o cursor voltar para o principio da frase.

O " \r " (retorno de carro)  era utilizado antigamente para criar uma nova linha  o mesmo que o "  \n " (nova linha ou newline) faz agora.  Agora podemos utilizar apenas  " \n " mas a forma padrão de se utilizar é  "  \r\n ". No Windows é preciso colocar  "  \r\n " porque o  "  \n " envia o cursor apenas para baixo e não para o principio da frase, já no Linux podemos utilizar  apenas " \n " porque o \n vai enviar o cursor para baixo e para o principio da linha.

Espero que entendam :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Spread    0
Spread

Não deveria ser \n \r ? Já há muito que não escrevo numa maquina de escrever mas tenho a impressão que primeiro se faz o gesto para a mudança de linha e só depois 'se anda com o carro'.

Cumps 8)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

(...)

Isto vai mostrar apenas  Isto é uma em vez de mostrar Isto é uma frase simples  porque  o  " \r " fez o cursor voltar para o principio da frase.

(...)

Não deveria mostrar só frase simples?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade