Foros del Web » Programando para Internet » PHP »

enviar mail adjuntando 3MB

Estas en el tema de enviar mail adjuntando 3MB en el foro de PHP en Foros del Web. hola a todos Cuento con un script que sirve para enviar mail adjuntando(attachment) archivos, lo que pasa es que maximo adjunta 1.2 MB y cuando ...
  #1 (permalink)  
Antiguo 07/08/2004, 18:47
Avatar de estanislaorc  
Fecha de Ingreso: abril-2003
Ubicación: Peru
Mensajes: 58
Antigüedad: 21 años
Puntos: 0
enviar mail adjuntando 3MB

hola a todos

Cuento con un script que sirve para enviar mail adjuntando(attachment) archivos, lo que pasa es que maximo adjunta 1.2 MB y cuando trato de adjuntar 1.5MB o mas solo adjunta un archivo de 0kB.

Los archivos a adjuntar son fijos ke ya se encuentran el servidor.

No se exactamente que aumentar a mi script o ke cambio en la configuracion de mi servidor.

Espero que me ayuden
__________________
Web developer
  #2 (permalink)  
Antiguo 07/08/2004, 22:24
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, México
Mensajes: 50
Antigüedad: 19 años, 10 meses
Puntos: 0
No pues que bien, asi piensas que te vamos a responder??????

Pon el código!!!


Saludos
__________________
JAEC
  #3 (permalink)  
Antiguo 08/08/2004, 13:14
Avatar de estanislaorc  
Fecha de Ingreso: abril-2003
Ubicación: Peru
Mensajes: 58
Antigüedad: 21 años
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
  #4 (permalink)  
Antiguo 09/08/2004, 10:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tal vez sea que tu script necesita más tiempo de ejecución para completar el envio (de todas formas algún error característico tenía que haberte dado) ..

usa:

set_time_limit(0);

al principo del script que envia el e-mail (no de la classe .. el otro).

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:29.