<?php

// ------------------------------------------------------------------------- //
// Comment utiliser la fonction mail() dans Phorum sur un site qui ne        //
// dispose pas de cette fonction.                                            //
// ------------------------------------------------------------------------- //
// Auteurs: François                                                         //
// Email:   visite.com@free.fr                                               //
// Web:                                                                      //
// ------------------------------------------------------------------------- //

/*
Procédure testée sur phorum 3.2.6 et 3.2.11 installés sur Free.

L'auteur d'un message sur phorum aura le plaisir de recevoir les réponses dans
sa boîte.

Mettre le fichier mailer.php3 sur le serveur possédant la fonction mail()

Mettre le fichier sendmail.php3 sur le serveur ne possédant pas la fonction
  mail() comme Free

Ouvrir ces fichiers pour les configurer, veillez que votre mot de passe soit
  identique sur ceux-ci.

Dans Phorum, modifiez les lignes suivantes, dans les répertoires "scripts" et
"include"; ne pas toucher au post.php3 situé à la racine de phorum mais celui
situé dans "include"

- /scripts/phorummail:
  
  remplacer la ligne "mail($email, ..." par "sendmail($email, ..."
  à la ligne juste avant, ajouter: include "$include_path/sendmail.php3";

- /include/post.php3:
  
  A la ligne n°2, ajouter: include "$include_path/sendmail.php3";
  Puis remplacer les appels à mail() par sendmail(). Il y en a en principe 3:
    
- un dans la fonction post_to_database (qui sert si le forum est modéré).
    - un dans post_to_email, qui sert si tu as une mailing list.
    - un autre dans post_to_email qui sert quand quelqu'un répond à un message.

- /post.php3
  
  A ne pas toucher

*/
?>


<?php

//-----------------------------------------------------------//
// mailer.php3 sur le serveur possédant la fonction mail()   //
//-----------------------------------------------------------//

function stripPost($chaine) {
  return(
get_magic_quotes_gpc() == 1 ? stripslashes($chaine) : $chaine );
}

/**
* <mailer.php3>
* This script must be on an account allowing the 'mail' function.
*/

// This password must be the same than the one in sendmail.php3.
$password = "votre_mot_de_passe";

// If you are on Nexen, uncomment the following line.
// include("mail.inc");

// Let's make some kind of authentification ...
if ($pass == $password) {
   
// All the fields are correct ?
   
if (isset($to) && isset($subject) && isset($message)) {
     
$to = stripPost($to);
     
$subject = stripPost($subject);
     
$message = stripPost($message);
     if (isset(
$header)) {
       
$header = stripPost($header);
       
// If you are on Nexen, replace 'mail' with 'email'.
       
mail($to, $subject, $message, $header);
     } else {
       
// If you are on Nexen, replace 'mail' with 'email'.
       
mail($to, $subject, $message);
     }
   }
}

?>


<?

//------------------------------------//
// sendmail.php3 (modifié pour phorum)//
//------------------------------------//

// ------------------------------------------------------------------------- //
// Certains hébergeurs ne proposent pas la fonction 'mail' pour l'envoi de   //
// messages. Il est possible de combler cette absence en utilisant un script //
// placé chez un autre hébergeur autorisant cette fonction.                  //
// ------------------------------------------------------------------------- //
// Auteur: Tristan Marly                                                     //
// Email:  tmarly@free.fr                                                    //
// ------------------------------------------------------------------------- //

$mailHost     = "www.votre_site";
$mailScript   = "mailer.php3";
$mailPassword = "votre_mot_de_passe";

// ------------------------------------------------------------------------- //
// Send a mail using a script located on a remote server. return true if the //
// mail has been sent. If the returned value is false, $errorMessage contain //
// some comments about the failure. $to, $subject, $message and $header are  //
// the same parameters than the PHP 'mail' function. If you want to specify  //
// the sender, place "From: my@mail.com" in $header.                         //
// ------------------------------------------------------------------------- //

function sendmail($to, $subject, $message, $header = false) {

  global
$errorMessage, $mailHost, $mailScript, $mailPassword;


  
// Let's encode data.
  
$data = "to=" . urlencode($to);
  
$data .= "&subject=" . urlencode($subject);
  
$data .= "&message=" . urlencode($message);
  
$data .= "&pass=" . urlencode($mailPassword);
  if (
$header) $data .= "&header=" . urlencode($header);

  
// Let's build the post request.
  
$message  = "POST /$mailScript HTTP/1.1\r\n";
  
$message .= "Host: $mailHost\r\n";
  
$message .= "Content-type: application/x-www-form-urlencoded\r\n";
  
$message .= "Content-length: ".strlen($data)."\r\n";
  
$message .= "\r\n";
  
$message .= "$data\r\n";

  
// Let's connect.
  
$stream = fsockopen( $mailHost, 80, &$errno, &$errorMessage, 20);
  if (
$stream && fputs($stream,$message)) {
    while(
$l = fgets($stream,4096));
    
fclose($stream);
    return
true;
  }

  return
false;

}

?>