Buscando sobre como enviar adjuntos por Php, me encontre con esta clase... solo en descripcion. mime_mail.class.php.
Alguien la tiene o tiene documentacion... o algo que me diga ALGO.
Pues todo esta en frances.
Gracias...
| |||
Te recomiendo PHPMailer en su lugar (http://phpmailer.sourceforge.net), viene con ejemplos listos para usar, fuera de que esta toda la API documentada. Entre otras cosas te permite: - Enviar archivos adjuntos sacados del sistema de archivos - Enviar archivos adjuntos sacados de un campo blob (base de datos) - Puedes utilizar la funcion mail() de PHP, SMTP, Qmail, Sendmail. - Autenticación SMTP. - Mail con copia oculta (CCO) Repasa un poco sus propiedades y métodos, te servirá bastante para lo que necesitas. Saludos |
| ||||
Bueno he encontrado otra clase... y dejenme decirles.... que me he quedado con la Boca abierta.... pues funciona con la funcion mail nativa de Php .... ASOMBROSO..... Con decirles que se pueden enviar varios adjuntos... y la utilizacion no es tan complicada En conclusion.. buenisima.. Quien la desee me puede contactar "mdelgado ARROBA globalmedsa.com" La clase se llama "sendmail.class.php"
__________________ Fox Mulder El destino es el que baraja las cartas, pero nosotros somos los que jugamos. :pensando: :pensando: Última edición por Miguel Delgado; 13/12/2004 a las 22:02 |
| |||
Miguel Delgado PHP Mailer tambien permite enviar vários archivos adjuntos y usa tres modos para enviar tu e-mail: sendmail, mail() origianal de PHP o SMTP directo ... (ya te lo habían comentado) No es que tenga nada que ver con los creadores de "PHP Mailer" (ni me dan comisión por recomendarla .. de hecho es "free" dicha classe). Pero, ... cuando quieras hacer otras cosas con e-mails como usar SMTP directo con "balanceo de carga" ... permite autentificación ... etc. tal vez no te sirva esa classe .. Bueno .. yo soy de la filosofía de tener una "cosa" que me resuelva un problema por completo .. en ese caso tema "mail" y uso en cada caso lo que corresponda, aprendo a usarla y le saco el máximo provecho hasta que encuentre otra mejor. De todas formas .. si quieres compartir tu classe .. si tienes el link de donde lo sacastes mejor. En su defecto .. podrías colocar el código de la misma y un ejemplo de uso (no creo que sea muy largo el código?) Un saludo, Última edición por Cluster; 14/12/2004 a las 06:13 |
| ||||
![]() Gracias por tu sabia opinion Cluster y ademas tengo problemilla que me ha desilusionado, en Correos como Hotmail y Yahoo los adjuntos me llegan en Binario y la verdad no se q hacer. Ya he comparado la rutina con las cabeceras normal, pero no se; de todos modos aqui va ---sendmail.class.php--- <? /** * class: sendmail.class.php * description: class for sending HTML mails with attachments * created: 21.02.2003 * last change: 26.01.2004 * author: Günther Bauer <[email protected]> * modifications décembre 2003: Alain BOURDEAU <[email protected]> * Pour l'utilisation sur la plateforme de la coopérative http://www.ouvaton.org. Les \r ont été éliminés et la blise MIME---- a été mise en tète du Header * copyright: Günther Bauer */ class sendmail { // Variable deklarieren = declaration des variables var $emailheader = ""; var $createur = ""; // ajout du 5em argument de l'e-mail var $textheader = ""; var $textboundary = ""; var $emailboundary = ""; var $charset = ""; var $betreff = ""; var $empfaenger = array(); // transformation en array var $attachment = array(); var $cc = array(); var $bcc = array(); // Konstruktor = construction des parametres fonctionnels function sendmail() { $this->textboundary = uniqid(time()); $this->emailboundary = uniqid(time()); $this->charset = "ISO-8859-1"; } // Funktion zum setzen des CharSet´s = la fonction de traduction des caractères function SetCharSet($char) { $this->charset = $char; } // Von wem die Email kommt in den Header setzen = initialisation de l'émeteur function from($name,$email) { $this->emailheader .= "From: ".$name."<".$email.">\n"; $this->createur = "-F $email"; } // Funktion um den Adressaten anzugeben = la prise en compte des destinataires individuels (tranformé en tableau-array) function to($to) { $this->empfaenger[] = $to; } // Funktion zum senden einer Kopie an Cc Empfänger = la prise en compte des destinataires Cc function cc($kopie_an_empfaenger) { $this->cc[] = $kopie_an_empfaenger; } // Funktion zum senden einer Kopie an Bcc Empfänger = la prise en compte des destinataires Bcc function bcc($kopie_an_empfaenger) { $this->bcc[] = $kopie_an_empfaenger; } // Erstellt den Header der Mime-Mail = intégration des destinataires Cc et-ou Bcc dans le Header 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->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->bcc[$j]; } $this->emailheader .= "\n"; } // la balise MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary a été mise dans le emailheader $this->emailheader .= "MIME-Version: 1.0\nContent-Type: multipart/mixed;\n\tboundary=\"".$this->emailboundary."\"\r\n"; } // Funktion für den Betreff anzugeben = prise en compte de l'objet du message function subject($subject) { $this->betreff = $subject; } // Textdaten in Email Header packen = intégration du texte du message dans le Header et crétion du double en html function text($text) { $this->textheader .= "Content-Type: multipart/alternative; \n\tboundary=\"".$this->textboundary."\"\n"; $this->textheader .= "--".$this->textboundary."\n"; $this->textheader .= "Content-Type: text/plain; charset=\"".$this->charset."\"\n"; $this->textheader .= "Content-Transfer-Enconding: quoted-printable\n"; $this->textheader .= strip_tags($text)."\n"; $this->textheader .= "--".$this->textboundary."\n"; $this->textheader .= "Content-Type: text/html; charset=\"".$this->charset."\"\n"; $this->textheader .= "Content-Transfer-Enconding: quoted-printable\n"; $this->textheader .= "\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"; $this->textheader .= "\n<HTML><BODY>".str_replace("\r\n","<br>",$text). "</BODY></HTML>\n"; $this->textheader .= "--".$this->textboundary."--\n"; } // Funktion zum anhängen für Attachments in der Email = prise en compte des fichiers attachés-joints au message function attachment($datei) { // Überprüfen ob File Existiert = vérification de l'existence du fichier if(is_file($datei)) { // Header für Attachment erzeugen = création de l'entète de l'attachement $attachment_header = "--".$this->emailboundary."\n" ; $attachment_header .= "Content-Type: application/octet-stream;\n name=\"".$this->GetFileName($datei)."\"\n"; $attachment_header .= "Content-Transfer-Encoding: base64\n"; $attachment_header .= "Content-Disposition: attachment;\n filename=\"".$this->GetFileName($datei)."\"\n\n"; // Daten der Datei einlesen, in das BASE64 Format formatieren und auf max 72 Zeichen pro Zeile = transcodage BASE64 et formatage 72 caractères par ligne // 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 = intégration de la mise en forme dans la variable idoine $this->attachment[] = $attachment_header.$file['inhalt']."\n"; } else { echo "Die Datei $datei existiert nicht...Ce document $datei n'existe pas\n"; } } // Funktion die den Dateinamen aus einer Angabe mit Pfad herausfiltert = traitement de l'adresse absolue du fichier function GetFileName($PathWithFile) { if(preg_match("/\//i",$PathWithFile)) { return substr(strrchr($PathWithFile,"/"),1); } else { return $PathWithFile; } } // Funktion zum erstellen des Kompletten Headers der Email = mise en forme du Header des E-mail // Senden der Email = expédition des e-mail function send() { $this->makeMimeMail(); $header = $this->emailheader; // Überprüfen ob Attachments angehängt wurden = ajout des différents attachements pris en compte if(count($this->attachment)>0) { // $header .= "Content-Type: multipart/mixed;\n\tboundary=\"".$this->emailboundary."\"\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 = mise en expédition individuelles des mails if(count($this->empfaenger) >0) { foreach($this->empfaenger as $pour) { mail("$pour",$this->betreff,"",$header,"$this->createur"); echo "Versenden gemacht fur ".$pour."= envoi fait pour ".$pour."<br>"; } } else { mail("$this->empfaenger",$this->betreff,"",$header,"$this->createur"); echo "Versenden gemacht fur ".$this->empfaenger."= envoi fait pour ".$this->empfaenger; } $this->deletememory(); } // Diese Funktion ist nur zum testen = C'est une fonction en test function deletememory() { unset($this->emailheader); unset($this->textheader); unset($this->attachment); } } ?>
__________________ Fox Mulder El destino es el que baraja las cartas, pero nosotros somos los que jugamos. :pensando: :pensando: |
| ||||
Ejemplo de SendMail ---SendmailExample.php--- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Documento sin título</title> </head> <body> <? // Klasse einbinden = intégration de la classe include("sendmail.class.php"); // Neue Instanz der Klasse erstellen (Ab jetzt kann auf die Funktionen der Klasse zugegriffen werden) // création du nouveau lien ainsi les fonctions de la classe sont disponobles $mail = new sendmail(); // Angeben des zu verwendenden CharSet´s = identification de la page de caractères $mail->SetCharSet("ISO-8859-1"); // Angeben des Absenders und der Absenderemailadresse = le nom et l'adresse de l'expaditeur $mail->from("Miguel Delgado","[email protected]"); // Angeben der Empfängeremailadresse = les adresses des destinataires la fonction a été transformée pour admettre plusieurs destinataires successifs du seul message $mail->to("[email protected]"); $mail->to("[email protected]"); // Angeben des Cc Empfänger = les adresses des destinataires Cc. $mail->cc("[email protected]"); //$mail->cc("[email protected]"); // Angeben dec Bcc Empfänger = les adresses des destinataires Bcc. $mail->bcc("[email protected]"); //$mail->bcc("[email protected]"); // Angeben des Betreff´s = l'objet du message $mail->subject("Prueba con Adjunto"); // Angeben des Textes (Auch HTML möglich) = le texte caracrères ascii puis en html pour faire bien // Beim eingeben des HTML Textes bitte <HTML><BODY></BODY></HTML> weglassen, = le double du même texte sous forme HTML mais sans les balises. // da dies automatisch hinzugefügt wird = les balises sont automatiquement mises en place dans la fonction $mail->text("Este el Texto y deben ir cuatro imagenes"); // Anegeben eines Attachment´s (sind auch mehrere möglich) = les fichiers mis en pièces jointes ce qui est encore un plus $mail->attachment("boo.gif"); // Versenden der E-Mail = la fonction qui expédie les mails $mail->send(); ?> </body> </html> De todos quien me pueda ayudar.... para saber cual fue el problema les agradeceria.
__________________ Fox Mulder El destino es el que baraja las cartas, pero nosotros somos los que jugamos. :pensando: :pensando: |
| |||
Deberías contactar al autor de dicha classe (por ahí aparece el e-mail) .. yo insisto y te puedo afirmar que PHP Mailer funciona perfectamente para todos esos casos. No está de más que la pruebes .. y ahí decidas tu mismo. Al final practicamente usan las mismas cabeceras HTTP (del protocolo HTTP) y las mismas técnicas .. podrías comparar los métodos de ambas classes para el tema concreto del envio del e-mail "attachado". Un saludo, |
| ||||
Ayuda Tienes material ... de esa clase.. pues lo que mas duro me ha dado.. es lo del SMTP, pues mi servidor es remoto y mis app deben ser lo mas dependientes posibles del servidor. He conseguido el KerioMailServer pero me he quedado igual.
__________________ Fox Mulder El destino es el que baraja las cartas, pero nosotros somos los que jugamos. :pensando: :pensando: |