нужна функция для отправки писем по smtp c вложениями. Для этого модифицировал уже написанную функцию для отправки просто письма(добавил разделитель). После отправки -письмо приходит с непонятным текстом и без вложений
Чувствую что что-то с кодировкой... помогите разобраться что к чему:
текст функции:
PHP:
скопировать код в буфер обмена
function smtpmail( $rcpt, $rcpt_name, $subject, $message, $arrfiles ){ $from='zzz@domain.com'; $from_name='ззз'; $port='25'; $domain='domain.com'; $host='smtp.domain.com'; $login='zzz@domain.com'; $passw='zzz123'; # $rcpt='aaa@gmail.com'; # $rcpt_name='ААА'; // Імя отримувача # $subject='Ббб'; # $message='Привет..как дела...'; // текст листа # $arrfiles - массив з ссылками на файли: $k-название файла в письме (xxx.pdf), $v- адрес файла на сервере $gluestr='----------AaBbCcDdEeFfGgHh'; // строка расделитель $header.='From: =?utf-8?B?'.base64_encode($from_name).'?= <'.$from.'>'."\r\n"; $header.='To: =?utf-8?B?'.base64_encode($rcpt_name).'?= <'.$rcpt.'>'."\r\n"; $header.='Reply-To: <'.$from.'>'."\r\n"; $header.='Subject: =?utf-8?B?'.base64_encode($subject).'?='."\r\n"; //$subject="=?utf-8?B?{$subject}?="; $header.='MIME-Version: 1.0'."\r\n"; $header.='User-Agent: ZDLOGISTIC Mail Robot'."\r\n"; $header.='Date: '.date('r')."\r\n"; $header.='Content-Type: multipart/mixed; boundary="'.$gluestr.'"'."\r\n"; //$header.='Content-Type: text/plain; charset="utf-8"'."\r\n"; //$header.='Content-Transfer-Encoding: base64'."\r\n"; $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; if(count($arrfiles)>0){ // якщо є файли foreach($arrfiles as $k=>$v){ $fp=fopen($v,'rb'); // откриваємо файл $message=$message."\r\n".'Content-Type: application/octet-stream; name="'.$k.'"'."\r\n".'Content-Transfer-Encoding: base64'."\r\n". 'Content-Disposition: attachment; filename="'.$k.'"'."\r\n\r\n".$code_file."\r\n".$gluestr; } } echo '<textarea name="inf" type="text" rows="80" cols="160">',$message,'</textarea>'; $smtp_conn=fsockopen($host,$port,$errno,$errstr,10 ); if(get_data ($smtp_conn)!='220'){return false;} fputs($smtp_conn,'EHLO zdlogistic'."\r\n"); if(get_data ($smtp_conn)!='250'){return false;} fputs($smtp_conn,'AUTH LOGIN'."\r\n"); if(get_data ($smtp_conn)!='334'){return false;} fputs($smtp_conn,base64_encode($login)."\r\n"); if(get_data ($smtp_conn)!='334'){return false;} fputs($smtp_conn,base64_encode($passw)."\r\n"); if(get_data ($smtp_conn)!='235'){return false;} $size_msg=mb_strlen($header."\r\n".$message,'UTF-8'); // кількість символів в повідомленні fputs($smtp_conn,'MAIL FROM:<'.$from.'> SIZE='.$size_msg."\r\n"); if(get_data ($smtp_conn)!='250'){return false;} fputs($smtp_conn,'RCPT TO:<'.$rcpt.'>'."\r\n"); if(get_data ($smtp_conn)!='250'){return false;} fputs($smtp_conn,'DATA'."\r\n"); if(get_data ($smtp_conn)!='354'){return false;} fputs($smtp_conn,$header."\r\n".base64_encode($message)."\r\n.\r\n"); if(get_data ($smtp_conn)!='250'){return false;} fputs($smtp_conn,'QUIT'."\r\n"); if(get_data ($smtp_conn)!='221'){return false;} return true; }
текст письма приходит вот такой вот:
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
VudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0DQpDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iNjg3MDAzNDMucGRmIg0KDQoNCg0KLS0tLS0tLS0tLUFhQmJDY0RkRWVGZkdnSGgNCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtOyBuYW1lPSI1NjA2ODk2OC5wZGYiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSI1NjA2ODk2OC5wZGYiDQoNCg0KDQotLS0tLS0tLS0tQWFCYkNjRGRFZUZmR2dIaA0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IG5hbWU9IjYwMzg5MjUxLnBkZiINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NA0KQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IjYwMzg5MjUxLnBkZiINCg0KDQoNCi0tLS0tLS0tLS1BYUJiQ2NEZEVlRmZHZ0ho(Отредактировано автором: 22 Декабря, 2014 - 14:29:59)
|