• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

fil79

dúvida a enviar mail via php

10 mensagens neste tópico

Boas

tenho este código para enviar mail:

        $corpo= "
                    <html>
                        <body>
    <table width='378' border='5' bordercolor='#000066'>
    <tr>
      <th width='145' scope='row'><img src='http://www........../.....jpg' width='100' height='39' /></th>
      <td width='217'>".$_POST['nome']."</td>
    </tr>
    <tr>
      <th scope='row'>Telefone</th>
      <td>".$_POST['telefone']."</td>
    </tr>
    <tr>
      <th scope='row'>Local</th>
      <td>".$_POST['local']."</td>
    </tr>
    <tr>
      <th scope='row'>Hora</th>
      <td>".$_POST['hora']."</td>
    </tr>
    <tr>
      <th scope='row'>Dia</th>
      <td>".$_POST['dia']."</td>
    </tr>
    <tr>
      <th scope='row'>Notas</th>
      <td>".$_POST['notas']."</td>
    </tr>
  </table>
    ".$fofoca."

</body>
</html>";

$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From:".$_POST['nome']."\n";


     $to      = "algo@gmail.com";   

     $subject = "Mensagem de ".$_POST["nome"]." ";   

     $message = $corpo;  

      
     
   if ( mail($to, $subject, $message, $headers)){  

     echo "<script> window.alert('A sua mensagem foi enviada.!')</script>"
     
        }
      ;

o script funciona bem mas queria que fosse adicionada uma imagem no mail... usei esta tg html <img src='http://www........../.....jpg' mas não aparece a imagem...já verifiquei e a path está correcta...sugestões? Desde já agradeço!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ao inserir aqui o script substitui a path por pontos...julgo não ser relevante qual a imagem que estou a utilizar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não faço ideia onde estará o problema... experimenta por " em vez de ' no src...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não posso fazer isso.....toda este código está inserido dentro da variável $ corpo...se colocar "" dá erro.....para enviar então uma imagem por mail html tenho de usar o caminho relativo, certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes sim...

1) Já há muito que não programo em PHP e já nem me lembro da última vez que juntei código HTML num ficheiro com código PHP como tu fizeste, mas suponho que não possas ter várias linhas de conteúdo (HTML) e usar single-quotes no $corpo certo? Anyway, uma solução para isso seria usares um sistema de templates. Fiz um artigo sobre o mesmo para a revista, não me lembro da edição, mas foi na 9ª ou 10ª acho eu. Aconselho-te a dar uma vista de olhos.

ou...

2) Usas o caractere \ antes do ", para que o caractere double-quote seja lido literalmente e não com significado especial como o tem nesse caso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

continua dar erro...fui buscar a classe phpmailer e já consigo enviar imegens  mas assim surgiu outra dúvida:



include_once('class.phpmailer.php');

$mail    = new PHPMailer();

$body    = $mail->getFile('conteudo.txt');

$body    = eregi_replace("[\]",'',$body);

$mail->From     = "name@yourdomain.com";
$mail->FromName = $_POST['nome'];

$mail->Subject = "PHPMailer Test Subject";

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$mail->AddAddress("filipe79@gmail.com", "Ana ");

if(!$mail->Send()) {
  echo 'Failed to send mail';
} else {
  echo 'Mail sent';
}


$fp = fopen("conteudo.txt", "w+");

$texto="<html>
					<body>
<table width='378' border='5' bordercolor='#000066'>
    <tr>
      <th width='145' scope='row'><img src=\"http://www.a-courela.com/ana/imagens/paciente.jpg\" /></th>
      <td width='217'>".$nomefinal."</td>
    </tr>
    <tr>
      <th scope='row'>Telefone</th>
      <td>".$_POST['telefone']."</td>
    </tr>
    <tr>
      <th scope='row'>Local</th>
      <td>".$_POST['local']."</td>
    </tr>
    <tr>
      <th scope='row'>Hora</th>
      <td>".$_POST['hora']."</td>
    </tr>
    <tr>
      <th scope='row'>Dia</th>
      <td>".$_POST['dia']."</td>
    </tr>
    <tr>
      <th scope='row'>Notas</th>
      <td>".$_POST['notas']."</td>
    </tr>
  </table>

<br>

</body>
</html>";


$escrever=fwrite($fp,$texto);



esta classe envia os dados num txt...criei também um codigo que escreve os dados nesse txt...Mas assim envia primeiro os dados num txt vazio e só depois escreve...como posso fazer para o script executar primeiro a escrita do txt e só depois enviar esse mesmo txt pelo mail? Espero que me tenha feito entender..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes de:

$body    = $mail->getFile('conteudo.txt');

Metes o código onde escreves para o ficheiro.

0

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