Newsgroup: it.comp.www.php
Titolo: Invio email con allegato

Salve a tutti,ecco il mio problema :
vorrei che un utente del mio sito potesse(cliccando un bottone)
inviare una email in cui viene allegato automaticamente un file(generato dal
server).
E' possibile???? Se si come?
Grazie

:
  *      - 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();
*/
?>
-- 
********************
http://www.scirio.tk
100% COMMERCIALE
********************

 ha scritto nel messaggio
news:b205nf$ce9$1...@lacerta.tiscalinet.it...


 Sarebbe la riga   mail($this->to, $this->subject, "", $mime);
le impostazioni nel php.ini sono corrette??
-- 
punkarruso

 
dovrebbe essere un errore legato al tuo server,
devi vedere i permessi che hai sul tuo sito
se x esempio è un sito di quelli con asp free a zero costo, 
probabilmente non puoi usare questa procedura xchè non è stata impostata 
da chi gestisce il server
come ti han già suggerito , prova a guardare il php.ini
purtroppo su questa cosa non so aiutarti di +


 ha scritto nel messaggio
news:flN0a.91468$YG2.2...@twister1.libero.it...


 cosa ci devo mettere?
SMTP è il server di posta in uscita (porta 25 di default).
se vuoi agire da localhost devi configurare un servizio di posta (es, 
sendmail per linux), altrimenti ti devi appoggiare ad un server remoto
(tipo 
smtp.tuoprovider.it
 o simili).
sendmail_from è chi sarà il mittente.
ciao
-- 
punkarruso