![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
08/08/2004, 13:14
|
![Avatar de estanislaorc](http://static.forosdelweb.com/customavatars/avatar33254_1.gif) | | | Fecha de Ingreso: abril-2003 Ubicación: Peru
Mensajes: 58
Antigüedad: 21 años, 9 meses Puntos: 0 | |
aqui esta el script Estoy usando una clase de phpclasses.org Código PHP: <?
/**
* class: sendmail.class.php
* description: class for sending HTML mails with attachments
* created: 21.02.2003
* last change: 19.12.2003
* author: Günther Bauer <[email protected]>
* copyright: Günther Bauer
*/
class sendmail
{
// Variable deklarieren
var $emailheader = "";
var $textheader = "";
var $textboundary = "";
var $emailboundary = "";
var $charset = "";
var $betreff = "";
var $empfaenger = "";
var $attachment = array();
var $cc = array();
var $bcc = array();
// Konstruktor
function sendmail()
{
$this->textboundary = uniqid(time());
$this->emailboundary = uniqid(time());
$this->charset = "ISO-8859-1";
}
// Funktion zum setzen des CharSet´s
function SetCharSet($char)
{
$this->charset = $char;
}
// Funktion die überprüft ob die E-Mailadresse korrekt ist
function Validate_email($mailadresse)
{
if(!preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})/i",$mailadresse))
{
die("The information could not be sent, please try again");
}
return $mailadresse;
}
// Von wem die Email kommt in den Header setzen
function from($name,$email)
{
$this->emailheader .= 'From: '.$name.'<'.$email.'>'."\n";
}
// Funktion um den Adressaten anzugeben
function to($to)
{
$this->empfaenger = $this->Validate_email($to);
}
// Funktion zum senden einer Kopie an Cc Empfänger
function cc($kopie_an_empfaenger)
{
$this->cc[] = $kopie_an_empfaenger;
}
// Funktion zum senden einer Kopie an Bcc Empfänger
function bcc($kopie_an_empfaenger)
{
$this->bcc[] = $kopie_an_empfaenger;
}
// Erstellt den Header der Mime-Mail
function makeMimeMail()
{
if(count($this->cc) > 0)
{
$this->emailheader .= 'Cc: ';
for($i=0;$i<count($this->cc);$i++)
{
if($i > 0) $this->emailheader .= ',';
$this->emailheader .= $this->Validate_email($this->cc[$i]);
}
$this->emailheader .= "\n";
}
if(count($this->bcc) > 0)
{
$this->emailheader .= 'Bcc: ';
for($j=0;$j<count($this->bcc);$j++)
{
if($j > 0) $this->emailheader .= ',';
$this->emailheader .= $this->Validate_email($this->bcc[$j]);
}
$this->emailheader .= "\n";
}
$this->emailheader .= 'MIME-Version: 1.0'."\n";
}
// Funktion für den Betreff anzugeben
function subject($subject)
{
$this->betreff = $subject;
}
// Textdaten in Email Header packen
function text($text)
{
$this->textheader .= 'Content-Type: multipart/alternative; boundary="'.$this->textboundary.'"'."\n\n";
$this->textheader .= '--'.$this->textboundary."\n";
$this->textheader .= 'Content-Type: text/plain; charset="'.$this->charset.'"'."\n";
$this->textheader .= 'Content-Transfer-Encoding: quoted-printable'."\n\n";
$this->textheader .= strip_tags($text)."\n\n";
$this->textheader .= '--'.$this->textboundary."\n";
$this->textheader .= 'Content-Type: text/html; charset="'.$this->charset.'"'."\n";
$this->textheader .= 'Content-Transfer-Encoding: quoted-printable'."\n\n";
$this->textheader .= '<html><body>'.$text.'</body></html>'."\n\n";
$this->textheader .= '--'.$this->textboundary.'--'."\n\n";
}
// Funktion zum anhängen für Attachments in der Email
function attachment($datei)
{
// Überprüfen ob File Existiert
if(is_file($datei))
{
// Header für Attachment erzeugen
$attachment_header = '--'.$this->emailboundary."\n" ;
$attachment_header .= 'Content-Type: application/octet-stream; name="'.basename($datei).'"'."\n";
$attachment_header .= 'Content-Transfer-Encoding: base64'."\n";
$attachment_header .= 'Content-Disposition: attachment; filename="'.basename($datei).'"'."\n\n";
// Daten der Datei einlesen, in das BASE64 Format formatieren und auf max 72 Zeichen pro Zeile
// aufteilen
$file['inhalt'] = fread(fopen($datei,"rb"),filesize($datei));
$file['inhalt'] = base64_encode($file['inhalt']);
$file['inhalt'] = chunk_split($file['inhalt'],72);
// Attachment mit Header in der Klassenvariable speichern
$this->attachment[] = $attachment_header.$file['inhalt']."\n";
}
else
{
die('Die Datei "'.$datei.'" existiert nicht...'."\n");
}
}
// Funktion zum erstellen des Kompletten Headers der Email
// Senden der Email
function send()
{
$this->makeMimeMail();
$header = $this->emailheader;
// Überprüfen ob Attachments angehängt wurden
if(count($this->attachment)>0)
{
$header .= 'Content-Type: multipart/mixed; boundary="'.$this->emailboundary.'"'."\n\n";
$header .= '--'.$this->emailboundary."\n";
$header .= $this->textheader;
if(count($this->attachment) > 0) $header .= implode("",$this->attachment);
$header .= '--'.$this->emailboundary.'--';
}
else
{
$header .= $this->textheader;
}
// Versenden der Mail
mail("$this->empfaenger",$this->betreff,"",$header);
$this->deletememory();
}
// Diese Funktion ist nur zum testen
function deletememory()
{
unset($this->emailheader);
unset($this->textheader);
unset($this->attachment);
}
}
?> y aqui es una muestra de la utilacion de la clase, como repito el archivo a adjuntar es fijo y se enciuentra en el servidor Código PHP: <?
include("sendmail.class.php");
$mail = new sendmail();
$mail->SetCharSet("ISO-8859-1");
$mail->from("ERC","[email protected]");
$mail->to("[email protected]");
$mail->subject("Demo");
$mail->text("Gracias por solicitar nuestro demo");
/*el archivo demo.swf se encuentra en el servidor al mismo nivel de este script, cuado el demo pesaba 1.2MB este se adjuntaba sin problemas, ahora que pesa 3MB es donde es el problema.
*/
$mail->attachment("demo.swf");
$mail->send();
?> tengo ke cambiar en el script ?? o en la configuracion de mi servidor??
__________________ Web developer |