За последние 24 часа нас посетили 22630 программистов и 1281 робот. Сейчас ищут 834 программиста ...

phpmailer как установить

Тема в разделе "PHP для новичков", создана пользователем Vitale, 5 авг 2016.

Метки:
  1. Vitale

    Vitale Новичок

    С нами с:
    4 авг 2016
    Сообщения:
    12
    Симпатии:
    0
    Добрый день!

    Разбираюсь с несколькими задачами. Чтобы протестировать файлы, нужно установить phpmailer. Я скачала zip https://github.com/PHPMailer/PHPMailer, расзиповала и сохранила в папке Sites (у меня Mac os 10.11), которая используется apache. Не знаю, что теперь делать с папкой phpmailer - нужно ли и как куда-то что-то добавить, чтобы можно было использовать в php коде использовать команду require для прикрепления библиотеки? Я только учусь, поэтому мне пока сложно с подобными задачами. Спасибо большое!
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Распакуй его прямо в папку конкретного проекта, и дальше там нужно просто сделать
    PHP:
    1. require "
    2. PHPMailerAutoload.php"
    На гите же всё написано
     
  3. Vitale

    Vitale Новичок

    С нами с:
    4 авг 2016
    Сообщения:
    12
    Симпатии:
    0
    Спасибо за ответ. То есть я должна сохранить эту папку в папку проекта. верно? Написано там много, я несколько раз прочитала, но я только учусь и все написанное для меня пока еще очень cryptic. )
    --- Добавлено ---
    Еще вопрос: получается, что я эту папку phpmailer должна каждый раз копировать в папку каждого проекта? Как так? Разве эта библиотека не должна лежать где-то в доступе для всех файлов и проектов?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @Vitale по какой книге изучаешь PHP? Там обычно эти основы должны были дать.
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Можно и так, но конкретно в вебе так редко делают. Ведь обычно потом надо загрузить сайт на сервер к заказчику. И учитывай, что php мы (обычно) не компилируем, не компонуем
     
    #5 mkramer, 5 авг 2016
    Последнее редактирование: 5 авг 2016
    denis01 нравится это.
  6. Vitale

    Vitale Новичок

    С нами с:
    4 авг 2016
    Сообщения:
    12
    Симпатии:
    0
    Еще вопрос: получается, что я эту папку phpmailer должна каждый раз копировать в папку ка
    Пока не по книге, а онлайн курс. Там в основе был С, а сейчас php, html, mysql, но пока довольно поверхностно.
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    @Vitale освой Composer и не придется "каждый раз копировать в папку ка"
     
    Vitale нравится это.
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Плохое начало, мало кто будет делать курс с таким количеством информации как в нескольких книгах примерно страниц 3000 теории, основ, практики.
     
  9. Vitale

    Vitale Новичок

    С нами с:
    4 авг 2016
    Сообщения:
    12
    Симпатии:
    0
    Почему не работает PHPMailerAutoload.php
    Сделала следующее:
    Код (Text):
    1. git clone https://github.com/PHPMailer/PHPMailer.git "$HOME/PHPMailer"
    2. cd $HOME/PHPMailer
    Создала файл mail.php
    Код (Text):
    1. <?php
    2. require 'PHPMailerAutoload.php';
    3.  
    4. $mail = new PHPMailer;
    5.  
    6. $mail->SMTPDebug = 3;                
    7.  
    8. $mail->isSMTP();                                  
    9. $mail->Host = 'smtp.gmail.com';                  
    10. $mail->SMTPAuth = true;                          
    11. $mail->Username = 'email@gmail.com';      
    12. $mail->Password = 'pass';                    
    13. $mail->SMTPSecure = 'tls';                        
    14. $mail->Port = 587;                                
    15.  
    16. $mail->setFrom('email@gmail.com');
    17. $mail->addAddress('email_to@gmail.com');    
    18. $mail->isHTML(true);                              
    19.  
    20. $mail->Subject = 'Here is the subject';
    21. $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    22. $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
    23.  
    24. if(!$mail->send()) {
    25.     echo 'Message could not be sent.'."\n";
    26.     echo 'Mailer Error: ' . $mail->ErrorInfo;
    27. } else {
    28.     echo 'Message has been sent'."\n";
    29. }
    30. ?>
    Код (Text):
    1. php mail.php
    Код (Text):
    1. Warning: require(PHPMailerAutoload.php): failed to open stream: No such file or directory in /Users/././mail.php on line 2
    2. Call Stack: 0.0008 233880 1. {main}() /Users/././mail.php:0
    3. Fatal error: require(): Failed opening required 'PHPMailerAutoload.php' (include_path='.:/usr/local/php5/lib/php') in /Users/././mail.php on line 2
    4. Call Stack: 0.0008 233880 1. {main}() /Users/...
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    нужно в require прописать путь к автолоадеру относительно текущего файла. там просто буквы-точка-пхп - будет искаться в том же каталоге что и текущий файл. на надо либо в подкаталоге либо выше, либо выше-рядом и так далее и тому подобное. либо вообще абсолютную ссылку - /home/(тут подставишь имя своей учетки)/PHPMailer/PHPMailerAutoload.php
     
    Vitale нравится это.
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    В какой папке mail.php, а в какой PHPMailer ? Потом, я предпочитаю использовать полные пути в require, получая из предопределённых констант __DIR__ и __FILE__, а также функции dirname

    @Ganzal, неужели ты советуешь прописывать путь руками?
    --- Добавлено ---
    Чтоб было понятно. К примеру, DOCUMENT ROOT у меня /var/html/user/my-site.ru, в нём лежит index.php, а в папке /var/html/user/my-site.ru/PM у меня phpmailer. Тогда чтоб включить автолоадер phpmailer-а в файле index.php, я напишу
    PHP:
    1. require_once __DIR__ . "/PM/PHPMailerAutoload.php";
     
    Vitale нравится это.
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    я выше композер уже порекомендовал. Остался без внимания. Следовательно, пациент еще слишком молод, чтоб использовать адекватную автозагрузку. Тем более она еще путается в обычной ручной загрузке. Основ не знает. Тонкого тюнинга инклюд-пафа и опен-бейсдира не делала ни разу. Что ей еще советовать, кроме ручной прописи? Ну да, на пальцах разъяснять абсолютные и относительные пути - всё что в наших силах.
     
    Vitale нравится это.
  13. Vitale

    Vitale Новичок

    С нами с:
    4 авг 2016
    Сообщения:
    12
    Симпатии:
    0
    нет нет - не без внимания! Простите, что не ответила. Но Вы сейчас все верно написали - я пока не знаю, что такое composer, хотя вижу эти файлы в папке PHPMailer. Спасибо Вам за объяснения и спасибо @mkramer - _DIR_ я уже встречала, но пока не использовала. Сейчас действительно была проблема в том, что я не указала путь в папку PHPMailer, в которой находится PHPMailerAutoload.php.
    Теперь все работает! Письмо ушло и пришло ) Нет слов как я благодарна помощь.
    --- Добавлено ---
    Да нет, в общем мне этот курс дал очень много. Это же совсем начальные знания, ознакомительные, но с практическими заданиями. После окончания курса уже нужно идти дальше, в глубь и выбирать что и как изучать. Еще несколько месяцев назад я даже и помыслить не могла, что смогу читать и немного писать программы на С, php, делать таблицу в Mysql (пусть и элементарную) и многое многое другое. Более того, я вообще не могла представить, что буду хоть немного разбираться в программировании - я вообще из другой сферы была )) Т
     
  14. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Vitale нравится это.
  15. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Честно говоря, тоже не делал, хотя знаю, зачем может понадобиться.
     
  16. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    Я пока на композер не перешел - тюнинговал инклюд паф. Сейчас это без надобности. По поводу опенбейсдира - он может мне не особо нужен, так как каждый проект крутится на своей виртуалке, но уметь нужно, если вдруг решишь делать проект, который народ будет ставить на массхостинг.