tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1090
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Xing_bimbo Tutorials.de Gastzugang
    Hallo,

    Ich habe ein script mit dem ich E-Mails versenden kann. nun möchte ich das die E-Mail einen Anhang hat aus einem bestimmt ordner auf meinem Server.


    Hier mal das Script was ich schon habe:

    PHP-Code:

    function authgMail($from$namefrom$to$nameto$subject$message) {

    $smtpServer "mail.gmx.net";  
    $port "25";                                    
    $timeout "45";                                
    $username "sales@mydomain.com"
    $password "XXXXXXX";                   
    $localhost "127.0.0.1";          
    $newLine "\r\n";                       
    $secure 0;                            


    //connect to the host and port
    $smtpConnect fsockopen($smtpServer$port$errno$errstr$timeout);
    $smtpResponse fgets($smtpConnect4096);
    if(empty(
    $smtpConnect)) {
       
    $output "Failed to connect: $smtpResponse";
       echo 
    $output;
       return 
    $output;
    }
    else {
       
    $logArray['connection'] = "<p>Connected to: $smtpResponse";
       echo 
    "<p />connection accepted<br>".$smtpResponse."<p />Continuing<p />";
    }

    //you have to say HELO again after TLS is started
       
    fputs($smtpConnect"HELO $localhost"$newLine);
       
    $smtpResponse fgets($smtpConnect4096);
       
    $logArray['heloresponse2'] = "$smtpResponse";
    //request for auth login
    fputs($smtpConnect,"AUTH LOGIN" $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['authrequest'] = "$smtpResponse";

    //send the username
    fputs($smtpConnectbase64_encode($username) . $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['authusername'] = "$smtpResponse";

    //send the password
    fputs($smtpConnectbase64_encode($password) . $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['authpassword'] = "$smtpResponse";

    //email from
    fputs($smtpConnect"MAIL FROM: <$from>" $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['mailfromresponse'] = "$smtpResponse";

    //email to
    fputs($smtpConnect"RCPT TO: <$to>" $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['mailtoresponse'] = "$smtpResponse";

    //the email
    fputs($smtpConnect"DATA" $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['data1response'] = "$smtpResponse";

    //construct headers
    $headers "MIME-Version: 1.0" $newLine;
    $headers .= "Content-type: text/html; charset=iso-8859-1" $newLine;
    $headers .= "To: $nameto <$to>" $newLine;
    $headers .= "From: $namefrom <$from>" $newLine;

    //observe the . after the newline, it signals the end of message
    fputs($smtpConnect"To: $to\r\nFrom: $from\r\nSubject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n");
    $smtpResponse fgets($smtpConnect4096);
    $logArray['data2response'] = "$smtpResponse";

    // say goodbye
    fputs($smtpConnect,"QUIT" $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['quitresponse'] = "$smtpResponse";
    $logArray['quitcode'] = substr($smtpResponse,0,3);
    fclose($smtpConnect);
    //a return value of 221 in $retVal["quitcode"] is a success
    return($logArray);
    }



    $err=0;  
    $err_msg="";

    echo 
    $err_msg;
    if(
    $err<=0) {
      
    $from="sales@mydomain.com";
      
    $namefrom="Admin";
      
    $to "internal_user@mydomain.com";
      
    $nameto "User";
      
    $subject "Das ist der Betreff";
      
    $message "Hi ich bin der Text";
      
    // this is it, lets send that email!
      
    authgMail($from$namefrom$to$nameto$subject$message);
    }
    else {
      echo 
    "<p /> This form was not filled out correctly, please correct any mistakes.";
    }

    ?> 

    Ich möchte nun das ich mit diesem Script auch noch einen Anhang versenden kann.

    Weis jemand wie ich das mache.

    Mein Smtp hoster ist mail.gmx.net



    Mit freundlichen grüßen
     

  2. #2
    Avatar von bn
    bn bn ist offline Mitglied Brokat
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    395
    Hi,

    meine Empfehlung - lass das Programmieren einer eigenen Mail-Bibliothek sein. Du wirst entweder an der Komplexität scheitern oder Ewigkeiten damit zubringen von einem Detail zum nächsten Details zu stolpern, die Bibliothek fertig zustellen oder aber eine nicht gut funktionierende Lösung erzielen.

    Es gibt bereits exzellente Mail-Bibliotheken, die alles können was du dir wünscht:
    Swift Mailer
    PHPMailer

    Grüße BN
     

Ähnliche Themen

  1. Mail via SMTP versenden
    Von Avedo im Forum PHP
    Antworten: 19
    Letzter Beitrag: 14.08.08, 07:58
  2. Mail Mit Anhang Versenden Php
    Von tobiastt im Forum PHP
    Antworten: 0
    Letzter Beitrag: 30.05.05, 12:10
  3. VB6.0 mail versenden smtp
    Von itsme123 im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 04.03.05, 17:22
  4. Mail mit Anhang versenden
    Von Yamah im Forum PHP
    Antworten: 0
    Letzter Beitrag: 04.10.04, 10:28
  5. Mail mit Anhang versenden
    Von Trymon im Forum Visual Basic 6.0
    Antworten: 7
    Letzter Beitrag: 10.05.02, 14:19