codice:
<?php
/***************************************************************************
* Copyright (C) 2007 by Pressello Luigi *
* luigi@team3wd.net *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
//Funzione sendMail(<mail di chi invia>,<mail del ricevente>,<server da cui inviare>,<oggetto del messaggio>,<messaggio>,<modalita debug>)
function sendMail($sender,$mail,$server,$subject,$message,$verbose=false){
//Creazione socket
if (($mailskt = socket_create (AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
if($verbose == true){
echo "errore creazione socket";
}
exit;
}else{
//Connessione al server tramite il socket $mailskt
if((socket_connect ($mailskt, $server, 25))< 0){
if($verbose == true)
echo "Impossibile connetersi al server ".$server;
}else{
if($verbose == true)
echo "Connesso al server\n";
$response = socket_read ($mailskt, 2048,PHP_BINARY_READ);
if($verbose == true)
echo "risposta: ".$response."\n";
//Invio comando HELO smtp
$command = "helo ".$sender;
if($verbose == true)
echo "comando: ".$command."\n";
socket_write($mailskt,$command,strlen($command)) or die ("Impossibile inviare comando");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando");
$response = socket_read ($mailskt, 2048,PHP_BINARY_READ);
if($verbose == true)
echo "risposta: ".$response."\n";
//Invio comando MAIL FROM smtp
$command = "mail from:<".$sender.">";
if($verbose == true)
echo "comando: ".$command."\n";
socket_write($mailskt,$command,strlen($command)) or die ("Impossibile inviare comando");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando");
$response = socket_read ($mailskt, 2048,PHP_BINARY_READ);
if($verbose == true)
echo "risposta: ".$response."\n";
//Invio comando RCPT TO smtp
$command = "rcpt to:<".$mail.">";
if($verbose == true)
echo "comando: ".$command."\n";
socket_write($mailskt,$command,strlen($command)) or die ("Impossibile inviare comando");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando");
$response = socket_read ($mailskt, 2048,PHP_BINARY_READ);
if($verbose == true)
echo "risposta: ".$response."\n";
//Invio comando DATA smtp
$command = "DATA";
if($verbose == true)
echo "comando: ".$command."\n";
socket_write($mailskt,$command,strlen($command)) or die ("Impossibile inviare comando");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando");
$response = socket_read ($mailskt, 2048,PHP_BINARY_READ);
if($verbose == true)
echo "risposta: ".$response."\n";
//Invio comando Intestazione smtp
$command = "from: ".$sender;
if($verbose == true)
echo "comando: ".$command."\n";
socket_write($mailskt,$command,strlen($command)) or die ("Impossibile inviare comando");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando\\r\\n");
$command = "to: ".$mail;
if($verbose == true)
echo "comando: ".$command."\n";
socket_write($mailskt,$command,strlen($command)) or die ("Impossibile inviare comando");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando\\r\\n");
$command = "subject: ".$subject;
if($verbose == true)
echo "comando: ".$command."\n";
socket_write($mailskt,$command,strlen($command)) or die ("Impossibile inviare comando");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando\\r\\n");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando\\r\\n");
//Invio comando Messaggio
$command = $message;
if($verbose == true)
echo "comando: ".$command."\n";
socket_write($mailskt,$command,strlen($command)) or die ("Impossibile inviare comando");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando\\r\\n");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando\\r\\n");
$command = ".";
if($verbose == true)
echo "comando: ".$command."\n";
socket_write($mailskt,$command,strlen($command)) or die ("Impossibile inviare comando");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando\\r\\n");
socket_write($mailskt,"\r\n",strlen("\r\n")) or die ("Impossibile inviare comando\\r\\n");
$response = socket_read ($mailskt, 2048,PHP_BINARY_READ);
if($verbose == true)
echo "risposta: ".$response."\n";
}
}
}
?>