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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: PHPmailer долго отправляет вложение

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Konstantin
Отправлено: 23 Января, 2014 - 14:49:04
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




Дело в том что PHPmailer вложения отправляет в письме очень долго. Растерялся
Хотелось бы узнать почему такое и как это устранить

небольшой конфиг
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $__smtp = array(
  4.     "host" => "ssl://smtp.yandex.ru", //smtp сервер
  5.     "debug" => 2,                   //отображение информации дебаггера (0 - нет вообще)
  6.     "auth" => true,                 //сервер требует авторизации
  7.     "port" => 465,                    //порт (по-умолчанию - 25)
  8.     "username" => "no-reply@yandex.ru",//имя пользователя на сервере
  9.     "password" => "password",//пароль
  10.     "addreply" => "no-reply@vasdomen.ru",//ваш е-mail
  11.     "replyto" => "your2@email.com"      //e-mail ответа
  12. );
  13. ?>
  14.  


сам файл

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     function smtpmail($to, $subject, $content, $attach=false, $attachname = 0, $attachcode = "base64", $attachtipe = "Application/octet-stream")
  4.     {
  5. require_once('config.php'); //путь до конфигурационного файла для вашего smtp сервера
  6. require_once('class.phpmailer.php'); //путь до класса phpmailer
  7. $mail = new PHPMailer(true);
  8.  
  9. $mail->IsSMTP();
  10. try {
  11.   $mail->CharSet="UTF-8";
  12.   $mail->Host       = $__smtp['host'];// адрес сервера пересылки
  13.   $mail->SMTPDebug  = $__smtp['debug']; // дебаг
  14.   $mail->SMTPAuth   = $__smtp['auth']; // авторизация
  15.   $mail->Port       = $__smtp['port']; // порт сервера
  16.   $mail->Username   = $__smtp['username']; // логин для входа на сервере
  17.   $mail->Password   = $__smtp['password']; // пароль от логина
  18.   $mail->AddReplyTo($__smtp['addreply'], "Сайт Название"); // кому направлять ответ на ваше письмо
  19.   $mail->AddAddress($to, "Логин получателя");                //кому письмо будет отправлено
  20.   $mail->SetFrom($__smtp['username'], "Сайт Название"); //данные отправителя
  21.   //$mail->AddReplyTo($__smtp['replyto'], $__smtp['replyto']);
  22.   $mail->Subject = htmlspecialchars($subject); // тема письма
  23.   $mail->MsgHTML($content); // текс письма в виде HTML
  24.   $mail->AltBody = "Альтернативный текст"; // альтернативный текст письма
  25.   if($attach)  $mail->AddAttachment($attach, $attachname, $attachcode, $attachtipe); // вложения если есть
  26.   $mail->WordWrap = 50;// set word wrap
  27.   $mail->Priority = 1;
  28.   $mail->Send();
  29.   echo "Message sent Ok!</p>\n";
  30.   $mailer->ClearAddresses(); // очищаем адрес
  31.   $mailer->ClearAttachments(); // очищаем вложение
  32. } catch (phpmailerException $e) {
  33.   echo $e->errorMessage();
  34. } catch (Exception $e) {
  35.   echo $e->getMessage();
  36. }
  37. }
  38.  
  39. $file = "flowers_05032010019.jpg";
  40. $filename = "flowers2.jpg";
  41. $filetip = "image/jpeg";
  42.  
  43. smtpmail("komu@yourmail", "Тема письма", "Текст письма", $file, $filename, "base64", $filetip);
  44. ?>
  45.  
  46.  


при запуске скрипта все хорошо
SMTP -> FROM SERVER:221 2.0.0 Closing connection.
Message sent Ok!

Но, отправка длится очень долго, хотя файл картинки не превышает 700 КБайт
Смотрел на сервере соединение, проверял скорость, там картина такая: соединение на 465 порту есть, но передача данных происходит рывками, 70-90Кбайт проскочит за секунду потом опять тишина, скорость передачи 0 в течении 5-6 секунд, потом опять рывок 70-90Кбайт проскакивает на smtp сервер яндекса

Если попытаться отправить файл 1Мбайт размером, то Nginx выдаст ошибку из за длительности ожидания.

Проблема решена. Тему можно закрывать
Удалил VIRTUALBOX и установил вместо него VMware. Теперь скорость передачи данных с виртуальной машины на реальную стабильней и выше. Так же теперь для apache не нужен модуль rpaf так как ip адреса в логах стали реальными.

(Отредактировано автором: 27 Января, 2014 - 15:58:46)

 
 Top
Konstantin
Отправлено: 25 Января, 2014 - 19:30:06
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




Проверил отправку почты SMTP еще с помощью одного класса Swift Mailer. Результат такой же. Медленно и долго отправляет Огорчение Может что то в настройках PHP нужно исправить ??? или у Apache

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. ini_set(display_errors, "on");
  4. require_once './lib/swift_required.php';
  5.  
  6. $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl" )
  7.   ->setUsername('87777799797@gmail.com')
  8.   ->setPassword('qSR9p3S3rAq5');
  9.  
  10. $mailer = Swift_Mailer::newInstance($transport);
  11. $message = Swift_Message::newInstance('Тема')
  12.   ->setFrom(array('otkogo@otkogo.org' => 'Галкин'))
  13.   ->setTo(array('komu@komu.ru' => 'Василий'))
  14.   ->setBody('текст gbcn')
  15.   ->attach(Swift_Attachment::fromPath('flowers.jpg'))
  16.   ;
  17. $numSent = $mailer->send($message);
  18. printf("Sent %d messages\n", $numSent);
  19. ?>
  20.  
 
 Top
armancho7777777 Супермодератор
Отправлено: 26 Января, 2014 - 08:10:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




 
 Top
Konstantin
Отправлено: 27 Января, 2014 - 16:00:11
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




ап
 
 Top
esterio
Отправлено: 27 Января, 2014 - 16:14:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




ПХП сам по себе пошту не отправляет, смотрите в сторону sendmail (или какой у вас там сервер)
 
 Top
armancho7777777 Супермодератор
Отправлено: 27 Января, 2014 - 16:57:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Konstantin пишет:
ап

Что ап ?
Язык проглотили ?
Я Вам скинул готовое решение.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB