Показать сообщение отдельно
Старый 02.08.2013, 13:09
infinitos вне форума Посмотреть профиль Отправить личное сообщение для infinitos Найти все сообщения от infinitos
  № 3  
Ответить с цитированием
infinitos

Регистрация: Jul 2013
Сообщений: 14
добавил архив с исходником в первое сообщение.
Вот какой код PHP предлагает мой бесплатный хостер, но в немецком я увы не бум-бум, а без комментов не пойму как прикрутить к моей форме...
PHP код:
<?php
   
// ********************************************************************************************************************************
   // smtp mail Funktion for kilu user, modifiziert by das Ass 22.03.2008 http://dasass.kilu.de/smtp.txt
   // ********************************************************************************************************************************
   
$name = "Absendername"; // optional
   
$email = "Absender Mail-Adresse";
   
$smtphost = 'mail.gmx.net';
   
$smtpuser = 'Kundennummer';
   
$smtppass = 'Passwort';
   
$mailfrom = 'eigene Mail-Adresse';

   if(
strtoupper(substr(PHP_OS,0,3)=='WIN')) { 
   
$eol="\r\n"; 
   }
   elseif (
strtoupper(substr(PHP_OS,0,3)=='MAC')) { 
   
$eol="\r"; 
   }
   else { 
   
$eol="\n"; 
   }

   function 
mailserverparse( $socket, $response ) {
   
$server_response = null;
     while( 
substr( $server_response, 3, 1 ) != ' ' )
       if( !( 
$server_response = fgets( $socket, 256 ) ) )
         
trigger_error(  'can not get mail server response codes' );
       if( !( 
substr( $server_response, 0, 3 ) == $response ) )
         
trigger_error( 'ran into problems sending mail. response: '.$server_response );
   return 
true;
   }

   function 
sendmail( $to, $subject, $message, $headers ) {
       global 
$smtphost, $smtpuser, $smtppass, $mailfrom, $eol;
          
           if( !
$socket = @fsockopen( $smtphost, 25, $errno, $errstr, 20 ) )
               
trigger_error( "Could not connect to smtp host: {$errno}:{$errstr}" );
          
           if( 
trim( $subject ) == null )
               
trigger_error( 'no email Subject specified' );
          
           
$message = preg_replace( "#(?<!\r)\n#si", "\r\n", $message );
           if( 
trim( $message ) == null )
               
trigger_error( 'message was blank' );
          
           if( !
preg_match( '#^from:#i', $headers ) && empty( $mailfrom ) )
               
trigger_error( 'no FROM header set' );
          
           
mailserverparse( $socket, '220' );
           
fputs( $socket, "HELO ".$smtphost.$eol );
           
mailserverparse( $socket, '250' );
          
           if( !empty( 
$smtpuser ) && !empty( $smtppass ) ) {
               
fputs( $socket, "AUTH LOGIN".$eol );
               
mailserverparse($socket, '334' );
               
fputs( $socket, base64_encode( $smtpuser ).$eol );
               
mailserverparse($socket, '334' );
               
fputs( $socket, base64_encode( $smtppass ).$eol );
               
mailserverparse( $socket, '235' );
           }
          
           if( 
$headers != null ) {
               
$headers = rtrim( $headers );
               
$headers = preg_replace( '#(?<!\r)\n#si', $eol, $headers );
               
$header_array = explode( $eol, $headers );
               
$headers = null;
               
$cc = null;
               
$bcc = null;
               foreach( 
$header_array as $header ) {
                   if ( 
preg_match( '#^cc:#si', $header ) )
                       
$cc = preg_replace('#^cc:(.*)#si', '\1', $header);
                   elseif( 
preg_match( '#^bcc:#si', $header ) ) {
                       
$bcc = preg_replace('#^bcc:(.*)#si', '\1', $header);
                       
$header = null;
                   }
                   
$headers .= ( $header != null )?$header.$eol:null;
               }
               
$headers = rtrim( $headers );
               
$cc = explode( ', ', $cc );
               
$bcc = explode( ', ', $bcc );
           }
          
           
fputs( $socket, "MAIL FROM: <".$mailfrom.">".$eol );
           
mailserverparse( $socket, '250' );
          
           
$to = empty( $to )?'Undisclosed-recipients:;':trim( $to );
           if( 
preg_match( '#[^ ]+\@[^ ]+#', $to ) ) {
               
fputs( $socket, "RCPT TO: ".$to.$eol );
               
mailserverparse( $socket, '250' );
           }
           if( 
is_array( $bcc ) )
               foreach( 
$bcc as $address ) {
                   
$address = trim( $address );
                   if( 
preg_match( '#[^ ]+\@[^ ]+#', $address ) ) {
                       
fputs( $socket, "RCPT TO: ".$address.$eol );
                       
mailserverparse( $socket, '250' );
                   }
               }
           if( 
is_array( $cc ) )
               foreach( 
$cc as $address ) {
                   
$address = trim( $address );
                   if( 
preg_match( '#[^ ]+\@[^ ]+#', $address ) ) {
                       
fputs( $socket, "RCPT TO: ".$address.$eol );
                       
mailserverparse( $socket, '250' );
                   }
               }
          
           
fputs( $socket, "DATA".$eol );
           
mailserverparse( $socket, '354' );
          
           
fputs( $socket, "Subject: ".$subject.$eol );
           
fputs( $socket, "To: ".$to.$eol );
           
fputs( $socket, $headers.$eol.$eol );
           
fputs( $socket, $message.$eol );
           
fputs( $socket, ".".$eol );
          
           
mailserverparse( $socket, '250' );
          
           
fputs( $socket, "QUIT".$eol );
           
fclose( $socket );
          
   return 
true;
   }

   
// Funktionsaufruf zum Senden
        
$headers ="From: ".(($name)?$name:"Absender")." <".$email.">".$eol;
        
sendmail( $mailfrom, $subject, $comment, $headers );
   
?>