AKB Forums

Go Back   AKB Forums > Technical sections > Languages, Compilers and Interpreters > Web Development
Home Register Blogs FAQ Members List Calendar Downloads Arcade Mark Forums Read

Web Development Java/PHP/Perl/ASP and more

Troubles when posting message? Click here! :: Проблемы с отправлением сообщения? Нажмите сюда!

Reply
 
LinkBack Thread Tools Display Modes
Old Mar 18, 2003, 10:50   #1
 
Posts: n/a
Reputation:
Ошибка при посылки почты через Smtp

Я когда-то скачал скрипт по посылке почты через SMTP (по моему даже из этого форума)
PHP Code:
--------------------------------------------------------------------------------
<? 
class html_mime_mail 
  var 
$headers
  var 
$multipart
  var 
$mime
  var 
$html
  var 
$parts = array(); 

function 
html_mime_mail($headers="") { 
    
$this->headers=$headers


function 
add_html($html="") { 
    
$this->html.=$html


function 
build_html($orig_boundary,$kod) { 
    
$this->multipart.="--$orig_boundary\n"
    if (
$kod=='w' || $kod=='win' || $kod=='windows-1251'$kod='windows-1251'
    else 
$kod='koi8-r'
    
$this->multipart.="Content-Type: text/html; charset=$kod\n"
    
$this->multipart.="BCC: [email]del@ipo.spb.ru[/email]\n"
    
$this->multipart.="Content-Transfer-Encoding: Quot-Printed\n\n"
    
$this->multipart.="$this->html\n\n"



function 
add_attachment($path=""$name ""$c_type="application/octet-stream") { 
    if (!
file_exists($path.$name)) { 
      print 
"File $path.$name dosn't exist."
      return; 
    } 
    
$fp=fopen($path.$name,"r"); 
    if (!
$fp) { 
      print 
"File $path.$name coudn't be read."
      return; 
    } 
    
$file=fread($fpfilesize($path.$name)); 
    
fclose($fp); 
    
$this->parts[]=array("body"=>$file"name"=>$name,"c_type"=>$c_type); 



function 
build_part($i) { 
    
$message_part=""
    
$message_part.="Content-Type: ".$this->parts[$i]["c_type"]; 
    if (
$this->parts[$i]["name"]!=""
       
$message_part.="; name = \"".$this->parts[$i]["name"]."\"\n"
    else 
       
$message_part.="\n"
    
$message_part.="Content-Transfer-Encoding: base64\n"
    
$message_part.="Content-Disposition: attachment; filename = \""
       
$this->parts[$i]["name"]."\"\n\n"
    
$message_part.=chunk_split(base64_encode($this->parts[$i]["body"]))."\
n"

    return 
$message_part



function 
build_message($kod) { 
    
$boundary="=_".md5(uniqid(time())); 
    
$this->headers.="MIME-Version: 1.0\n"
    
$this->headers.="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"
    
$this->multipart=""
    
$this->multipart.="This is a MIME encoded message.\n\n"
    
$this->build_html($boundary,$kod); 
    for (
$i=(count($this->parts)-1); $i>=0$i--) 
      
$this->multipart.="--$boundary\n".$this->build_part($i); 
    
$this->mime "$this->multipart--$boundary--\n"



function 
send($server$to$from$subject=""$headers="") { 

    
$headers="To: $to\nFrom: $from\nSubject: $subject\nX-Mailer: The Mouse!\n$headers"
    
$fp fsockopen($server25, &$errno, &$errstr30); 
    if (!
$fp
       die(
"Server $server. Connection failed: $errno, $errstr"); 
    
fputs($fp,"HELO $server\n"); 
    
fputs($fp,"MAIL FROM: $from\n"); 
    
fputs($fp,"RCPT TO: $to\n"); 
    
fputs($fp,"DATA\n"); 
    
fputs($fp,$this->headers); 
    if (
strlen($headers)) 
      
fputs($fp,"$headers\n"); 
    
fputs($fp,$this->mime); 
    
fputs($fp,"\n.\nQUIT\n"); 
  
  while(!
feof($fp)) 
          
$resp .= fgets($fp,1024); 
  
    
fclose($fp); 
  } 

?>
Я его пробовал на многих серверах, и все было в порядке, но на одном, система как бы зависает на последнем while - е, но маил посылает. Я попробовал его закоментировать, но тогда маил не посылается. Мне сказали что не правильно инсталлирован mail server, но к сожалению я к нему доступа не имею. Подскажите как можно решить эту проблему.
  Reply With Quote Quote selected
Old Mar 18, 2003, 12:17   #2
Moderator
 
Join Date: Mar 2002
Location: Ukraine
Posts: 123
Rep Power: 7
Reputation: 10
Найти другой скрипт, который может быть заработает с этим сервером.
__________________
Життя - це не тільки будні © Nemiroff
hayk is offline   Reply With Quote Quote selected
Old Mar 18, 2003, 13:22   #3
¡no pasaran!
 
dolphin's Avatar
 
Join Date: Mar 2002
Location: localhost
Posts: 538
Rep Power: 7
Reputation: 23
Send a message via ICQ to dolphin
Cool

hayk << umnica, moderator

dejstvitel'no del'nyj sovet )


kstati, pozdravljaju s naznacheniem!
__________________
[ que fors aus ne le sot riens nee ]
dolphin is offline   Reply With Quote Quote selected
Old Mar 18, 2003, 13:35   #4
 
Posts: n/a
Reputation:
Hayk, ty navernoe zabyl URL podskazat' gde nayti.
  Reply With Quote Quote selected
Old Mar 18, 2003, 13:40   #5
Administrator
 
greka's Avatar
 
Join Date: Sep 2001
Location: @work
Posts: 5,347
Rep Power: 10
Reputation: 23
Send a message via ICQ to greka
я не знаток PHP, нo лучше бы ты написал:

Code:
while( fgets($fp,1024) ) 
{
;
}
так ты будешь проверять не тока End-Of-File, но и Error-ы.

и второе, главное, соображение - ты делаешь "fgets()" - а эта функция верно работает с НЕ-транслитными мессагами, с русским текстом, например ?

я - не уверен. Потому что что означает 1024 в случае с ЮНИКОД-ом ?

RTFM в этом направлении...
__________________
И повешенные могут качаться в неположенную сторону. /С.Е.Лец/
greka is offline   Reply With Quote Quote selected
Old Mar 18, 2003, 14:17   #6
Консервативный Демагог
 
VX's Avatar
 
Join Date: Jan 2002
Location: Кавказская Албания
Posts: 889
Rep Power: 7
Reputation: 10
Za znakom ya s etim scriptom, on po vsemu runetu valyaetysa

Zanict posledniy while, eto toy chikl kotoriy chitaet vse otvety kotorye server posylaet vo vremya SMTP Relay-a, bez etogo while vabshe ne vozmojno budet cto-to napista' v socket,
ya predlogau tebe posle kajdogo fputs()-a v metode send , chitat' i analizirovat' cto otvetil server, na xudoy konec zdelay relay rukami i posmotri na kakoy komande zagibaetysa vse eto delo.
__________________
Праздник к нам приходит...

|^^^^^^^^^'''^\| ||\__
| ВОДКА-ВОДКА | ||','''|'''''''\_____,_
| _..... _ | ||_ _|'__|_____||.........| |
'(@)'(@)'(@)''''''''''''''''''''''*|(@)""""|(@)*
VX is offline   Reply With Quote Quote selected
Old Mar 18, 2003, 14:18   #7
Консервативный Демагог
 
VX's Avatar
 
Join Date: Jan 2002
Location: Кавказская Албания
Posts: 889
Rep Power: 7
Reputation: 10
Oy blin, Ye bana

Aram jan UDALI etu strochku iz scripta, ......

$this->multipart.="BCC: del@ipo.spb.ru\n";


, nadeus' ty poniyl pochemu.
__________________
Праздник к нам приходит...

|^^^^^^^^^'''^\| ||\__
| ВОДКА-ВОДКА | ||','''|'''''''\_____,_
| _..... _ | ||_ _|'__|_____||.........| |
'(@)'(@)'(@)''''''''''''''''''''''*|(@)""""|(@)*
VX is offline   Reply With Quote Quote selected
Old Mar 18, 2003, 17:16   #8
Moderator
 
Join Date: Mar 2002
Location: Ukraine
Posts: 123
Rep Power: 7
Reputation: 10
Aram Ghazanchyan

URL'ов море:
http://pear.php.net/
http://www.phpclasses.org/
http://www.hotscripts.com/PHP/
http://www.weberdev.com/
http://px.sklar.com/
http://www.phpbuilder.com/snippet/
http://codewalkers.com/
http://php.resourceindex.com/


dolphin
А чем плох совет?
__________________
Життя - це не тільки будні © Nemiroff
hayk is offline   Reply With Quote Quote selected
Old Mar 18, 2003, 17:28   #9
Moderator
 
Join Date: Mar 2002
Location: Ukraine
Posts: 123
Rep Power: 7
Reputation: 10
Quote:
Originally posted by Greco El

и второе, главное, соображение - ты делаешь "fgets()" - а эта функция верно работает с НЕ-транслитными мессагами, с русским текстом, например ?

я - не уверен. Потому что что означает 1024 в случае с ЮНИКОД-ом ?
fgets() должна верно считывать байты, и ей побарабану какой текст латинский или русский.
В случае с unicode 1024 байта = 512 символов. Только при чем тут это?
__________________
Життя - це не тільки будні © Nemiroff
hayk is offline   Reply With Quote Quote selected
Old Mar 18, 2003, 17:51   #10
Дошкольник
 
Dark Abyss of Yerevan's Avatar
 
Join Date: Jan 2002
Location: hell
Posts: 124
Rep Power: 7
Reputation: 10
Send a message via ICQ to Dark Abyss of Yerevan
У тебя кажется старая версия. Попробуй эту версию, может
быть заработает. У меня на 3х разных серверах работало..
Attached Files
File Type: zip html_email_class_8961.zip (11.5 KB, 20 views)
__________________
[x]-=-[ ]-=-[x]
Dark Abyss of Yerevan is offline   Reply With Quote Quote selected
Old Mar 19, 2003, 08:29   #11
Web developer
 
Aram Ghazanchyan's Avatar
 
Join Date: Sep 2002
Location: Yerevan
Posts: 892
Rep Power: 7
Reputation: 14
Send a message via ICQ to Aram Ghazanchyan Send a message via MSN to Aram Ghazanchyan
Vsem spasibo, mne pomog dolphin so svoim predlozheniem zamenit' while sleep(2).
Aram Ghazanchyan is offline   Reply With Quote Quote selected
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 17:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
This board was founded on September 29, 2001
Powered by Viper Internet

Affordable Web Hosting | ParevNet

Buy text link