Новичок
Покинул форум
Сообщений всего: 10
Дата рег-ции: Янв. 2014
Помог: 0 раз(а)
|
Дело в том что PHPmailer вложения отправляет в письме очень долго.
Хотелось бы узнать почему такое и как это устранить
небольшой конфиг
PHP:
скопировать код в буфер обмена
<?PHP "host" => "ssl://smtp.yandex.ru", //smtp сервер "debug" => 2, //отображение информации дебаггера (0 - нет вообще) "auth" => true, //сервер требует авторизации "port" => 465, //порт (по-умолчанию - 25) "username" => "no-reply@yandex.ru",//имя пользователя на сервере "password" => "password",//пароль "addreply" => "no-reply@vasdomen.ru",//ваш е-mail "replyto" => "your2@email.com" //e-mail ответа ); ?>
сам файл
PHP:
скопировать код в буфер обмена
<?PHP function smtpmail($to, $subject, $content, $attach=false, $attachname = 0, $attachcode = "base64", $attachtipe = "Application/octet-stream") { require_once('config.php'); //путь до конфигурационного файла для вашего smtp сервера require_once('class.phpmailer.php'); //путь до класса phpmailer $mail = new PHPMailer(true); $mail->IsSMTP(); try { $mail->CharSet="UTF-8"; $mail->Host = $__smtp['host'];// адрес сервера пересылки $mail->SMTPDebug = $__smtp['debug']; // дебаг $mail->SMTPAuth = $__smtp['auth']; // авторизация $mail->Port = $__smtp['port']; // порт сервера $mail->Username = $__smtp['username']; // логин для входа на сервере $mail->Password = $__smtp['password']; // пароль от логина $mail->AddReplyTo($__smtp['addreply'], "Сайт Название"); // кому направлять ответ на ваше письмо $mail->AddAddress($to, "Логин получателя"); //кому письмо будет отправлено $mail->SetFrom($__smtp['username'], "Сайт Название"); //данные отправителя //$mail->AddReplyTo($__smtp['replyto'], $__smtp['replyto']); $mail->MsgHTML($content); // текс письма в виде HTML $mail->AltBody = "Альтернативный текст"; // альтернативный текст письма if($attach) $mail->AddAttachment($attach, $attachname, $attachcode, $attachtipe); // вложения если есть $mail->WordWrap = 50;// set word wrap $mail->Priority = 1; $mail->Send(); echo "Message sent Ok!</p>\n"; $mailer->ClearAddresses(); // очищаем адрес $mailer->ClearAttachments(); // очищаем вложение } catch (phpmailerException $e) { echo $e->errorMessage(); } catch (Exception $e) { echo $e->getMessage(); } } $file = "flowers_05032010019.jpg"; $filename = "flowers2.jpg"; $filetip = "image/jpeg"; smtpmail("komu@yourmail", "Тема письма", "Текст письма", $file, $filename, "base64", $filetip); ?>
при запуске скрипта все хорошо
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)
|