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

aparicio

Html Email ?

3 mensagens neste tópico

alguém já se lembrou de procurar como se enviam email's com código html tipo tabelas e imagens para ser logo apresentado e não em attachment's!

pois eu encontrei estes dois ficheiros que resolvem essa questão deuma forma simples.

free_html_mailer.php

<?php
function html_mail ($to, $subject, $html_message, $from_address, $from_display_name=''){
$email_from_addr = $from_address; // actual email address of the sender
$email_from_name = $from_display_name; // display name, if any, that the sender wishes to use
$email_subject =  $subject; // The Subject of the email 
$email_txt = $html_message; // Message that the email has in it 
$email_to = $to; // Who the email is to
$headers = $email_from_name == '' ? "From: ".$email_from_addr : "From: ".$email_from_name." <".$email_from_addr.">";
$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
$headers .= "\nMIME-Version: 1.0\n" . 
            "Content-Type: multipart/mixed;\n" . 
            " boundary=\"{$mime_boundary}\""; 
$email_message .= "This is a multi-part message in MIME format.\n\n" . 
                "--{$mime_boundary}\n" . 
                "Content-Type:text/html; charset=\"iso-8859-1\"\n" . 
                "Content-Transfer-Encoding: 7bit\n\n" . 
			$email_txt . 
			"\n\n\n<br><br><span style=\"font-family: verdana, ariel, sans-serif; font-size: 12px\"><bold><a href=\"http://www.fav.pt\">Federação Académica de Viseu</a></bold></span>";
//				"<html><body><img src='" . $fileurl . "'><BR>" . $email_txt . "</body></html>\n\n"; 
$ok = @mail($email_to, $email_subject, $email_message, $headers); 
if(! $ok) { 
	die("Sorry but the email could not be sent. Please go back and try again!"); 
} 
}
?>

free_html_mailer_test.php

<?
include "free_html_mailer.php";


$from = "email";
$to = "email";
$from_name = "Nome";
$html_message = "<html><head></head>".
"<body>".
"<h1>hello world</h1>".
"<img src=\"http://www.portugal-a-programar.org/forum/templates/subSilver/images/logo_phpBB.gif\">".
"</body>".
"</html>";
$subject = "TESTE";
html_mail ($to, $subject, $html_message, $from, $from_name);

//todo:  ability to speicify file (ststic) as the html imput source to sendHtmlMimeMail (paid version?)


?>
Test Successful

Agora só falta um formulário que vá buscar a mensagem a um ficheiro html, acrescente as  (") sem esquecer a posição absoluta das imagens e restantes ficheiros e temos uma boa ferramenta para envio de email's!

alguem sabe como por as aspas no fim de cada linha? de um ficheiro?

abraço Aparicio

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Heyas all...

Aspas? Acho que isso está muita complicado...pelo menos do que tive a ver do código... Ora toma lá uma cena rápida e eficiente...

function email_informa($nome,$empresa,$morada,$email,$telefone,$fax,$texto,)
{
$name_file_template_email = 'template_infor.html';//já cá chegamos.. tem de ser o código todo..
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: qq_coisa@qq_coisa.pt\r\n";//Aqui pões o mail de onde vem
$headers .= "Bcc: qq_coisa@qq_coisa.pt, ";//Aqui pões o mail de onde vem
$headers .= "\r\n";
$file = fopen('library/'.$name_file_template_email,'r');//abre-se o ficheiro
$body = fread($file,filesize('library/'.$name_file_template_email));
fclose($file);
$body = str_replace('[TIPO]',"Informação",$body);	
$body = str_replace('[NOME]',$nome,$body);
$body = str_replace('[EMPRESA]',$empresa,$body);
$body = str_replace('[MORADA]',$morada,$body);
$body = str_replace('[email]',$email,$body);
$body = str_replace('[TEL]',$telefone,$body);
$body = str_replace('[FAX]',$fax,$body);
$body = str_replace('[TEXTO]',$texto,$body);
if (mail("qq_sitio@qq_sitio","titulo do email",$body, $headers))//aqui basta pores 1º o mail para onde vai, depois o título..e o resto percebe-se..
	return true;
else
	return false;
}

Agora o ficheiro template_infor.html:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Lusocargo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.style1 {
font-size: 16px;
font-weight: bold;
color: #666666;
}
.style2 {
color: #999999;
font-size: 12px;
}
.style3 {
font-size: 10px;
color: #000000;
}
.style4 {
font-size: 24px;
font-family: "Arial Black";
color: #008000;
}
.style6 {
font-size: 12px;
font-weight: bold;
color: #000000;
font-family: "Arial Narrow";
}
.style7 {font-size: 16px}
-->
</style>
</head>
<body>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
 <tr>
   <td  colspan="2" align="center" class="style4">[TIPO]</td>
 </tr>
 <tr>
   <td  colspan="2" align="center" height="10"></td>
 </tr>
 <tr>
   <td class="style1" width="150">Nome:</td>
   <td class="style2">[NOME]</td>
 </tr>
  <tr>
   <td class="style1">Empresa:</td>
   <td class="style2">[EMPRESA]</td>
 </tr>
 <tr>
   <td class="style1">Morada:</td>
   <td class="style2">[MORADA]</td>
 </tr>
 <tr>
   <td class="style1">Email:</td>
   <td class="style2">[email]</td>
 </tr>
 <tr>
   <td class="style1">Telefone:</td>
   <td class="style2">[TEL]</td>
 </tr>
 <tr>
   <td class="style1">Fax:</td>
   <td class="style2">[FAX]</td>
 </tr>
 <tr>
   <td class="style1" valign="top">Comentário:</td>
   <td class="style2">[TEXTO]</td>
 </tr>
</table>

</body>
</html>

Agora explicando minimamente..não é preciso grande explicação.

Basicamente temos um ficheiro .html perfeitamente normal a diferença é que tem para lá umas coisas entre parêntesis rectos, depois com a nossa função ( do PHP quero eu dizer) fazes a substituição da informação de entrada, pelo que lá está ou seja o que está entre [ ], e claro o mail vai em HTML, com o CSS definido e tudo e mais alguma coisa..

Só tens de criar o teu ficheiro HTML com o design que quiseres, e siga para bingo...

Hasta all e espero ter ajudado [[]]

PS: Andei à procura daquela thread da sintax highlight para por aqui no code PHP e HTML...só que não encontrei...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O sintax highlighting deu uns erros e estamos neste momento à espera que algum membro desta comunidade consiga ajudar a instalá-lo.

:D

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