Jump to content
  • 0

конфиг phpmaailera


cyklop77
 Share

Question

помогите пожалуйста разобраться с настройками скрипта для отправки писем PHPmailer

 

подключение скрипта проблем не вызывает. не понятны настройки конфига

$__smtp = array(    "host" => "smtp.yandex.ru", //smtp сервер    "debug" => 2,                   //отображение информации дебаггера (0 - нет вообще)    "auth" => true,                 //сервер требует авторизации    "port" => 25,                    //порт (по-умолчанию - 25)    "username" => "%username%",//имя пользователя на сервере    "password" => "%password%",//пароль    "addreply" => "your@email.com",//ваш е-mail    "replyto" => "your@email.com"      //e-mail ответа);

у меня бесплатный хостинг и я не знаю например требует ли он авторизации или нет

 

так же не понятно какие username и password прописывать в этом конфиге. при помощи которых я соединяюсь через ftp? вряд ли...

 

не понятно что прописать в поле HOST. в примере выше прописан адрес smtp.yandex.ru . значит если у меня например хостинг на hostinger.com.ua , то нужно прописать smtp.hostinger.com.ua ??

 

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Попробую объяснить на примере движка IPB.

 

Вот в администраторской зоне у меня есть настройки отправки писем:

3985762.png

 

"host" => "smtp.yandex.ru" — например в IBP это "Адрес сервера", я использую ящик от mail'a (inbox), соответственно пишу в это поле smtp.mail.ru;

"debug" => 2 — не знаю, что это, откладка какая-то, но я бы оставил по умолчанию;

"auth" => true — это тоже оставляем так;

"port" => 25 — про порты я смотрел тут;

"username" => это то, что в IPB "Имя пользователя на сервере", например (tratata@inbox.ru);
"password" => пароль от ящика;
"addreply" => тут пишем e-mail;
"replyto" =>  тут тоже;
 
Смысл в том, что вам нужно создать ящик на одном из сервисов типа Яндекс, Mail, Gmail и т.д. и прописать все эти настройки.
Edited by Aleksandr.L
Link to comment
Share on other sites

  • 0

Эти конфиги вы можите найти в панели администрирования хостинга, в разного рода хелпах по хостингу(faq, например), ну или обратиться в сапорт. У меня например, данные конфиги доступны в разделе информации по созданным на хостинге почтовым ящикам:h_1386921278_2408095_28d63a187c.gif

Edited by CoDy
  • Like 1
Link to comment
Share on other sites

  • 0

тогда ещё такой вопрос пявляется. если на хостинге для отправки email используется на smtp, а что-нибудь другое, то гемора с настройкой phpmailera станет ещё больше?

 

на самом деля я плохо представляю что такое smtp. или это стандарт и всегда, все электронные письма отправляются только через него?..

Edited by cyklop77
Link to comment
Share on other sites

  • 0

PHPmailer может работать через pop, smtp или sendmail. Это все сервисы, которые хостер "настраивает"(или может и не настроить) для своих клиентов для работы с почтой.

 

Выкачайте сам PHPmailer отсюда https://github.com/PHPMailer/PHPMailer/archive/master.zip, там в папке examples есть примеры работы через разные почтовые службы. Самый простой вариант - это через sendmail.

$mail = new PHPMailer();$mail->isSendmail();$mail->setFrom('from@example.com', 'First Last');$mail->addReplyTo('replyto@example.com', 'First Last');$mail->addAddress('whoto@example.com', 'John Doe');$mail->Subject = 'PHPMailer sendmail test';........if (!$mail->send()) {    echo "Mailer Error: " . $mail->ErrorInfo;} else {    echo "Message sent!";}

Вам нужно просто определиться, какой из почтовых сервисов у вас есть в распоряжении и подсмотреть как с ним работать в папке с примерами.

  • Like 1
Link to comment
Share on other sites

  • 0

теперь понятно

 

 а если нет времени заморачиваться с phpmailerom и просто использовать php-функцию mail(), то не имеет значения какой почтовый сервис настроен на хостинге?

 

понятно, что в моём распоряжении не будет всех удобных функций phpmailera(таких как отправка письма с вложением например), но иногда время критично

Edited by cyklop77
Link to comment
Share on other sites

  • 0

php-функция mail() работает через sendmail. Если на хостинге установлен sendmail и php на него настроен, тогда можите смело пользовать mail(), если вам ее хватает. Только не рекомендуется пользовать mail() для организации массовой рассылки.

  • Like 1
Link to comment
Share on other sites

  • 0
плохо представляю что такое smtp. или это стандарт и всегда, все электронные письма отправляются только через него

Вот скрипт, описывающий базовые варианты работы с почтовыми сервисами через PHPMailer. В коментах прописал свое понимание происходящего, возможно, кому-то пригодится.

<?php/** * */ini_set('display_errors', 'on');error_reporting(-1);require './PHPMailer/PHPMailerAutoload.php';// Конфиг для smtp.$smtpHost = '——';$smtpPort = 25;$smtpUser = '——';$smtpPass = '——';// Конфиг для pop-авторизации.$popHost = '——-';$popPort = 110;$popUser = '——-';$popPass = '——-';$debug = true;$mailFrom = empty($_GET['from']) ? 'sdf@werw.besaba.com' : $_GET['from'];$mailTo = empty($_GET['to']) ? 'mytempmail@ua.fm' : $_GET['to'];   $mail = new PHPMailer();/** * Выбор и настройка "механизма отправки" письма. */ $mailer = empty($_GET['mailer']) ? 'mail' : $_GET['mailer'];switch ( $mailer ) {  // Php-функция mail(), которая будет работать через sendmail,  // на который настроен php.  default:    $mailer = 'mail';  case 'mail': {    // Установка в качестве "механизма отправки" php-функции mail(), которая    // будет работать через sendmail, прописанный в конфиге.    // Этого можно и не делать, поскольку mail() установлена по дефолту.     $mail->isMail();            break;  }    // Отправка через sendmail. Отличие от первого варианта в том, что  // идет непосредственно в php прописано ручное открытие потока к прцессу   // sendmail(через popen()) и помещение в поток тела письма. В первом случае  // этим занимается функция mail().   case 'sendmail': {    $mail->isSendmail();        // При необходимости можно вручную прописать путь у sendmail.    //$this->Sendmail = '/path/to/sendmail';               break;  }		      // Отправка через smtp, без авторизации на сервере.  // Вся работа с smtp реализована в класе SMTP, который прилагается  // к библиотеке.  case 'smtp_no_auth': {    $mail->isSMTP();        // Enable SMTP debugging    //  0 = off (for production use)    //  1 = client messages    //  2 = client and server messages    $debug      && $mail->SMTPDebug = 2    ;    // Ask for HTML-friendly debug output    $mail->Debugoutput = 'html';            $mail->Host = $smtpHost;    $mail->Port = $smtpPort;    $mail->SMTPAuth = false;            break;  }    // Отправка через smtp, с smtp-авторизацией на сервере.   case 'smtp': {    $mail->isSMTP();        // Enable SMTP debugging    //  0 = off (for production use)    //  1 = client messages    //  2 = client and server messages    $mail->SMTPDebug = 2;    // Ask for HTML-friendly debug output    $mail->Debugoutput = 'html';                $mail->Host = $smtpHost;    $mail->Port = $smtpPort;        $mail->SMTPAuth = true;    $mail->Username = $smtpUser;    $mail->Password = $smtpPass;            break;  }    // Отправка через smtp, с авторизацией по протоколу pop.  // Такой вариант авторизации для отправки писем через smtp должен быть  // настроен на сервере.  case 'pop_before_smtp': {    POP3::popBeforeSmtp(    	$popHost,    	$popPort,    	30,			     // время ожидания    	$popUser,    	$popPass,    	(int)$debug  // >=1 - отладка; 0 - без отладки    );            $mail->isSMTP();        // Enable SMTP debugging    //  0 = off (for production use)    //  1 = client messages    //  2 = client and server messages    $mail->SMTPDebug = 2;    // Ask for HTML-friendly debug output    $mail->Debugoutput = 'html';                $mail->Host = $smtpHost;    $mail->Port = $smtpPort;        $mail->SMTPAuth = false;            break;  }}/** * Формирование письма. */ $mail->setFrom($mailFrom, 'First Last');$mail->addReplyTo($mailTo, 'First Last');$mail->addAddress($mailTo, 'John Doe');$mail->Subject = 'PHPMailer '. $mailer .' test';$mail->msgHTML('html');$mail->AltBody = 'text';$mail->addAttachment(__FILE__);/** * Отправка. */ if ( !$mail->send() ) {    echo 'Mailer "'. $mailer .'" error: ' . $mail->ErrorInfo;} else {    echo 'Mailer "'. $mailer .'": message sent!';}
Edited by CoDy
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy