Exemple amb la funció mail( )
   
  Introducció
   
  Des de fa temps, els usuaris dels serveis de correu de la XTEC, de la mateixa manera que es feia a l'hora de rebre missatges, s'han d'autentificar per enviar-ne a servidors externs, tal com s'explica a la pàgina Correu autentificat Correu autentificat a la XTEC de la XTEC. I en el cas d'enviar-los a usuaris propis del mateix servidor sense autentificar els sistema de detecció de correu brossa o spam correu brossa a la XTEC que inclou XTEC fa que es defensi i ho enten com un abús del servei. Davant d'això s'activen alguns mecanismes de comunicació a servidors mundials que memoritzen l'adreça IP del potencial 'spammer'.
   
  A l'utilitzar i executar la funció mail() i fer proves per realitzar els exercicis, pot ser que el sistema de la XTEC us identifiqui com un potencial spammer, i el servidor es defensi i informi als servidors mundials que refusi el correu que prové d'aquella IP. Aqui teniu un exemple d'aquest error.
   
  Warning: mail(): SMTP server response: 550 5.7.1 Mail from 63.83.209.131 refused by sorbs http://rbls.org...3.83.209.131 in c:\archivos de programa\easyphp1-7\www\prac_d116\m3\alu00+m3e1.php on line 49
   
  Aquest comportament no és crític, i no heu de preocupar-vos pel funcionament dels vostres gestors de correu que teniu a l'ordinador, ja que aquests utilitzen internament correu autentificat i aquest bloqueig no afecta al seu normal funcionament.
   
Recordeu que a la pràctica 3 del mòdul 1, s'explica la configuració del php.ini pel que fa al correu electrònic. Si no funcionen les vostre trameses, reviseu aquestes directives.
   
Atenció
Atenció! Tornem a recordar que posant "smtp.xtec.cat" com a SMTP al fitxer de configuració php.ini no es resoldran adreces externes a aquest servidor. És a dir, que només arribaran els missatges que s'enviïn a una altra adreça del servidor del Pie mateix.
   
  A continuació podeu veure la tramesa de correu proposada a la pràctica 2 del mòdul 3, resolta sense utilitzar les eines de correu autentificat.
   
  Enviant el formulari per correu sense autentificar. Funció mail( )
   
  A continuació, podeu veure el codi corresponent a " prochora.php" . Aquest és el nom que ha de tenir la pàgina receptora de les dades entrades al formulari demanahora.html del mòdul 3 pràctica 2 ( Llistat 3.2.3.). Podeu copiar aquest codi a l'editor i desar-lo amb el nom de prochora.php a la mateixa carpeta on heu guardat el fitxer demanahora.html.
   
Atenció

Recordeu de substituir en el fitxer demanahora.html, la instrucció :

<form method="POST" action="prho_aut.php" >
Per :
<form method="POST" action="prochora.php" >

   
Veure codi

<?php
/*---------------------------------------------------------------
* Mòdul: 3 Pràctica: 2 Fitxer: prochora.php
* Autor: D116 Data:
* Descripció: Tramesa de correu
* Pre condi.: Cal haver entrat dades al fitxer 'demanahora.html'
* Post cond.:
-----------------------------------------------------------------*/

// Recuperem les variables passades pel mètode POST i les "traiem"
// de l'array associatiu $_POST.
// Ho fem per tenir el codi més clar i manejable. Podríem treballar
// directament amb l'array però en codis llargs seria més feixuc.

$motiu     = $_POST['motiu'];
$dni       = $_POST['dni'];
$nom       = $_POST['nom'];
$cognom1   = $_POST['cognom1'];
$cognom2   = $_POST['cognom2'];
$curs      = $_POST['curs'];
$pla       = $_POST['pla'];
$grup      = $_POST['grup'];
$proposta1 = $_POST['proposta1'];
$proposta2 = $_POST['proposta2'];
$proposta3 = $_POST['proposta3'];

echo "<b>Text de motiu sense tractar</b><br><br>";
echo $motiu."<br><br><br>";
echo "<b>Text de motiu tractat</b><br><br>";
$motiu = trim($motiu); //traiem espais en blanc al princ. i al final
$motiu = stripslashes($motiu);//traiem caràcter d'escapament davant'
$motiu_mail = $motiu;
$motiu = nl2br($motiu); // convertim salts de paràgraf a <br>
echo $motiu."<br><br><br>";

echo "Enviant missatge...";
$adresa="ADREÇADESTÍ@pie.xtec.net";
$assumpte="Cita tutoria";
$missatge = "DNI: ".$dni."\n";
$missatge .= "Nom: ".$nom." ".$cognom1." ".$cognom2."\n";
$missatge .= "Curs: ".$curs." ".$pla." ".$grup."\n\n";
$missatge .= "Motiu: \n".$motiu_mail."\n\n";
$missatge .= "Propostes d'horari \n";
$missatge .= "Proposta 1: ".$proposta1."\n";
$missatge .= "Proposta 2: ".$proposta2."\n";
$missatge .= "Proposta 3: ".$proposta3."\n";
$missatge .= "\n\n\n Missatge enviat el ".date("d/m/Y")." a les ".date("H:i:s");

$cap = "From: LATEVADREÇA@pie.xtec.net\nReply-To: LATEVADREÇA@pie.xtec.net\nX-Mailer: PHP/" . phpversion();

mail($adresa, $assumpte, $missatge, $cap);

echo "<br><br>Missatge enviat";

?>

  Llistat 3.2.4.b. Processament del formulari de sol·licitud d'entrevista de tutoria amb la funció mail()
   
  En aquest codi podem observar el següent:
 
  • El fet d'usar el PHP per enviar el missatge de correu permet 'modelar' i distribuir la informació al nostre gust: unir variables, etc.
  • Tornem a fer servir la funció date(), que permet recuperar la data i hora del sistema del servidor i la retorna amb el format que desitgem.
  • La funció mail() demana tres paràmetres: 'per a' ($adresa), 'sobre' ($assumpte), 'missatge' ($missatge); opcionalment podem passar-li el camp 'capçaleres addicionals'.
   
Tingueu en compte
El script anterior només funcionarà si canvieu les adreces que conté. Així, cal substuir ADREÇADESTÍ@xtec.cat per l'adreça que calgui i LATEVADREÇA@xtec.cat per l'adreça de "retorn". Per fer proves podeu posar-hi a tots dos llocs la vostra adreça.
   
   
   
 
Amunt