Newsgroup: it.comp.www.php
Titolo: ancora e-mail e allegati

Salve !!!
rinnovo la mia domanda ... con un server win nt +apache+php dovrei mandare
via delle e-mail con allegati.... sapete se esiste una classe o altro che mi
permette di fare questo ?
grazie anticipatamente

:
  *      - General code clean-up
  *      - separate body- and from-property
  *      - killed some mostly un-necessary stuff
  */
class mime_mail  {
	var $parts;
	var $to;
	var $from;
	var $headers;
	var $subject;
	var $body;
 
     // class constructor
	function mime_mail()  {
		$this->parts = array();
		$this->to = "";
		$this->from = "";
		$this->subject = "";
		$this->body = "";
		$this->headers = "";
	}
	// add_attachment(string message, [string name], [string ctype])
	// Add an attachment to the mail object
	function add_attachment($message, $name="", 
$ctype="application/octet-stream")  {
		$this->parts[] = array (
						"ctype" => $ctype,
                         "message" => $message,
                         "encode" => $encode,
                         "name" => $name);
	}
	// build_message(array part=Build message parts of an multipart mail
	function build_message($part) {
 
		$message = $part["message"];
		// modified by rudi - begin
		if ($part["ctype"] == "text/plain")	{
			return "Content-Type: text/plain; 
charset=\"iso-8859-1\"\n\n$message\n\n";
		// modified by rudi - end
		} else {
			$message = chunk_split(base64_encode($message));
			$encoding = "base64";
			return "Content-Type: " . $part["ctype"] . ($part["name"] ? "; name = 
\"" .
			$part["name"] . "\"" : "") . "\nContent-Transfer-Encoding: 
$encoding\n\n$message\n";
		}
	}
	// build_multipart()
	function build_multipart()  {
		$boundary = "b".md5(uniqid(time()));
		$multipart = "Content-Type: multipart/mixed; boundary = 
$boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
 
		for ($i = sizeof($this->parts)-1; $i >= 0; $i--)    {
			$multipart .= "\n" . $this->build_message($this->parts[$i]) . 
"--$boundary";
		}
		return $multipart.= "--\n";
	}
	// Send the mail (last class-function to be called)
	function send()  {
		$mime = "";
		if (!empty($this->from))
			$mime .= "From: ".$this->from."\n";
		if (!empty($this->headers))
			$mime .= $this->headers."\n";
		if (!empty($this->body))
		    $this->add_attachment($this->body, "", "text/plain");
 
 
		$mime .= "MIME-Version: 1.0\n" . $this->build_multipart();
		//echo $mime;
		mail($this->to, $this->subject, "", $mime);
	}
}; // end of class
/*
Example usage
$attachment = fread(fopen("test.jpg", "r"), filesize("test.jpg"));
$mail = new mime_mail();
$mail->from = "
f...@bar.com
";
$mail->headers = "Bcc: sadasd,sasdasds";
$mail->to = "
b...@foo.com
";
$mail->subject = "Testing...";
$mail->body = "This is just a test.";
$mail->add_attachment("$attachment", "test.jpg", "image/jpeg");
$mail->send();
*/
?>
-- 
********************
scirio, re del sito:
http://iccp.altervista.org
:-)
http://www.scirio.tk
100% COMMERCIALE
********************

 ha scritto nel messaggio
news:bbmt2r$r4j$1...@lacerta.tiscalinet.it...


 
quello è il mime_type
che lo ricavi dagli attributi del file uploadato col form
se x esempio nel form il file si chiamava scirio (il nome del campo file 
del form non il nome del file)
nella pagina dopo avrai gli attributi del file caricato
e il mime lo ricavi con la variabile scirio_type
quindi li ci metti $scirio_type
al posto di test.jpg ci metti $scirio_name
e al posto di attachment ci metti $scirio


 ha scritto nel messaggio
news:bbn15g$tfs$2...@lacerta.tiscalinet.it...


 
bň detto cosě non so aiutarti
dovresti postare il codice
cmq la classe funge xchč la uso spesso
quindi avrai fatto qualche errore, controlla bene


 ha scritto nel messaggio
news:bbn5kt$ku$1...@lacerta.tiscalinet.it...


 
ovviamente non basta copiare
devi avere la pagina prima col form
l'hai fatta vero???


 ha scritto nel messaggio
news:bbn6p7$1fe$1...@lacerta.tiscalinet.it...


 ha scritto nel messaggio
news:bbn74p$1r1$1...@lacerta.tiscalinet.it...


 
ok, ma x usare quella classe devi dirgli il nome del file online con 
percorso (ok)
il nome del file da mandare (ok)
e il tipo del file (non ok)
se ce l'hai sul db devi aver salvato anche un campo con il tipo di file




Prova questa: 
http://www.phpguru.org/downloads/html.mime.mail/htmlMimeMail-2.5.1.tar.gz
funziona su tutto... e ricorda, anche se credo che tu lo sappia già,
che su winzoz devi usare necessariamente smtp...
Nel file trovi anche la documentazione e 4 o 5 file di esempio
commentati alla perfezione.
--
Plutonio #21