Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: отправка писем по smtp с атачами и без
Форумы портала PHP.SU » » Работа с сетью » отправка писем по smtp с атачами и без

Страниц (1): [1]
 

1. ivanm - 22 Декабря, 2014 - 13:33:31 - перейти к сообщению
нужна функция для отправки писем по smtp c вложениями. Для этого модифицировал уже написанную функцию для отправки просто письма(добавил разделитель). После отправки -письмо приходит с непонятным текстом и без вложений
Чувствую что что-то с кодировкой... помогите разобраться что к чему:
текст функции:
PHP:
скопировать код в буфер обмена
  1.  
  2. function smtpmail( $rcpt, $rcpt_name, $subject, $message, $arrfiles ){
  3.         $from='zzz@domain.com';
  4.         $from_name='ззз';
  5.         $port='25';
  6.         $domain='domain.com';
  7.         $host='smtp.domain.com';
  8.         $login='zzz@domain.com';
  9.         $passw='zzz123';
  10.         # $rcpt='aaa@gmail.com';
  11.         # $rcpt_name='ААА'; // Імя отримувача
  12.         # $subject='Ббб';
  13.         # $message='Привет..как дела...'; // текст листа
  14.         # $arrfiles - массив з ссылками на файли: $k-название файла в письме (xxx.pdf), $v- адрес файла на сервере
  15.        
  16.         $gluestr='----------AaBbCcDdEeFfGgHh'; // строка расделитель
  17.        
  18.         $header.='From: =?utf-8?B?'.base64_encode($from_name).'?= <'.$from.'>'."\r\n";
  19.         $header.='To: =?utf-8?B?'.base64_encode($rcpt_name).'?= <'.$rcpt.'>'."\r\n";
  20.         $header.='Reply-To: <'.$from.'>'."\r\n";
  21.         $header.='Subject: =?utf-8?B?'.base64_encode($subject).'?='."\r\n";      //$subject="=?utf-8?B?{$subject}?=";
  22.         $header.='MIME-Version: 1.0'."\r\n";
  23.         $header.='User-Agent: ZDLOGISTIC Mail Robot'."\r\n";
  24.         $header.='Date: '.date('r')."\r\n";
  25.         $header.='Content-Type: multipart/mixed; boundary="'.$gluestr.'"'."\r\n";
  26.         //$header.='Content-Type: text/plain; charset="utf-8"'."\r\n";
  27.         //$header.='Content-Transfer-Encoding: base64'."\r\n";
  28.        
  29.         $message=$gluestr."\r\n".'Content-Type: text/plain; charset="utf-8"'."\r\n".'Content-Transfer-Encoding: base64'."\r\n\r\n".$message."\r\n".$gluestr;
  30.        
  31.         if(count($arrfiles)>0){ // якщо є файли
  32.                 foreach($arrfiles as $k=>$v){
  33.                         $fp=fopen($v,'rb'); // откриваємо файл
  34.                         $code_file = chunk_split(base64_encode(fread($fp, filesize($v))));
  35.                         fclose($fp);
  36.                         $message=$message."\r\n".'Content-Type: application/octet-stream; name="'.$k.'"'."\r\n".'Content-Transfer-Encoding: base64'."\r\n".
  37.                                                           'Content-Disposition: attachment; filename="'.$k.'"'."\r\n\r\n".$code_file."\r\n".$gluestr;
  38.                 }
  39.         }
  40.        
  41.         echo '<textarea name="inf" type="text" rows="80" cols="160">',$message,'</textarea>';
  42.        
  43.         $smtp_conn=fsockopen($host,$port,$errno,$errstr,10); if(get_data($smtp_conn)!='220'){return false;}
  44.         fputs($smtp_conn,'EHLO zdlogistic'."\r\n"); if(get_data($smtp_conn)!='250'){return false;}
  45.         fputs($smtp_conn,'AUTH LOGIN'."\r\n"); if(get_data($smtp_conn)!='334'){return false;}
  46.         fputs($smtp_conn,base64_encode($login)."\r\n"); if(get_data($smtp_conn)!='334'){return false;}
  47.         fputs($smtp_conn,base64_encode($passw)."\r\n"); if(get_data($smtp_conn)!='235'){return false;}
  48.         $size_msg=mb_strlen($header."\r\n".$message,'UTF-8'); // кількість символів в повідомленні
  49.         fputs($smtp_conn,'MAIL FROM:<'.$from.'> SIZE='.$size_msg."\r\n"); if(get_data($smtp_conn)!='250'){return false;}
  50.         fputs($smtp_conn,'RCPT TO:<'.$rcpt.'>'."\r\n"); if(get_data($smtp_conn)!='250'){return false;}
  51.         fputs($smtp_conn,'DATA'."\r\n"); if(get_data($smtp_conn)!='354'){return false;}
  52.         fputs($smtp_conn,$header."\r\n".base64_encode($message)."\r\n.\r\n"); if(get_data($smtp_conn)!='250'){return false;}
  53.         fputs($smtp_conn,'QUIT'."\r\n"); if(get_data($smtp_conn)!='221'){return false;}
  54.        
  55.         return true;
  56. }
  57.  


текст письма приходит вот такой вот:
Subject: =?utf-8?B?0JLRltC00LLQsNC90YLQsNC20LXQvdC+?=
MIME-Version: 1.0
User-Agent: ZDLOGISTIC Mail Robot
Date: Mon, 22 Dec 2014 12:07:34 +0000
Content-Type: multipart/mixed; boundary="----------AaBbCcDdEeFfGgHh"

LS0tLS0tLS0tLUFhQmJDY0RkRWVGZkdnSGgNCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCg0KNjA3ODk2NjYg0JrQmNCH0JIt0JLQntCb0JjQndCh0KzQmtCY0JnCoCA9PiDQl9CQ0J/QntCg0IbQltCW0K8t0JvQhtCS0JXCoCA9PiDQstC40LQgOTsNCjY4NzAwMzQzINCW0JjQotCe0JzQmNCgwqAgPT4g0JrQoNCY0JLQmNCZINCg0IbQk8KgID0+INCy0LjQtCA0LzUwMS81MDk7MTc7DQo1NjA2ODk2OCDQmtCY0IfQki3QktCe0JvQmNCd0KHQrNCa0JjQmcKgID0+INCX0JDQn9Ce0KDQhtCW0JbQry3Qm9CG0JLQlcKgID0+INCy0LjQtCA5Ow0KNjAzODkyNTEg0JrQntCg0J7QodCi0JXQndCsLSDQltCY0KLQntCc0JjQoNCh0KzQmtCY0JnCoCA9PiDQmtCg0JjQktCY0Jkg0KDQhtCTwqAgPT4g0LLQuNC0IDQvNTAxOw0KDQotLS0tLS0tLS0tQWFCYkNjRGRFZUZmR2dIaA0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IG5hbWU9IjYwNzg5NjY2LnBkZiINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NA0KQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IjYwNzg5NjY2LnBkZiINCg0KDQoNCi0tLS0tLS0tLS1BYUJiQ2NEZEVlRmZHZ0hoDQpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTsgbmFtZT0iNjg3MDAzNDMucGRmIg0KQ29udG
VudC1UcmFuc2Zlci1FbmNvZGluZzogYm FzZTY0DQpDb250ZW50LURpc3Bvc2l0aW 9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT 0iNjg3MDAzNDMucGRmIg0KDQoNCg0KLS 0tLS0tLS0tLUFhQmJDY0RkRWVGZkdnSG gNCkNvbnRlbnQtVHlwZTogYXBwbGljYX Rpb24vb2N0ZXQtc3RyZWFtOyBuYW1lPS I1NjA2ODk2OC5wZGYiDQpDb250ZW50LV RyYW5zZmVyLUVuY29kaW5nOiBiYXNlNj QNCkNvbnRlbnQtRGlzcG9zaXRpb246IG F0dGFjaG1lbnQ7IGZpbGVuYW1lPSI1Nj A2ODk2OC5wZGYiDQoNCg0KDQotLS0tLS 0tLS0tQWFCYkNjRGRFZUZmR2dIaA0KQ2 9udGVudC1UeXBlOiBhcHBsaWNhdGlvbi 9vY3RldC1zdHJlYW07IG5hbWU9IjYwMz g5MjUxLnBkZiINCkNvbnRlbnQtVHJhbn NmZXItRW5jb2Rpbmc6IGJhc2U2NA0KQ2 9udGVudC1EaXNwb3NpdGlvbjogYXR0YW NobWVudDsgZmlsZW5hbWU9IjYwMzg5Mj UxLnBkZiINCg0KDQoNCi0tLS0tLS0tLS 1BYUJiQ2NEZEVlRmZHZ0ho

 

Powered by ExBB FM 1.0 RC1