Архив метки: PHP

Рассылка E-Mail с помощью Mailgun API + PHP

PHP имеет встроенные функции для отправки почтовых сообщений однако обычно такие письма сразу же попадают в спам. Поэтому необходимо использовать API для отправки электронных писем, которые будут попадать именно в папку «Входящие» почтового ящика адресата, а не в спам. Большинство APIплатные, но если вам необходимо с чего-то начать нужен бесплатный сервис. Тут на сцене появляется Mailgun. 10.000 электронных писем бесплатно каждый месяц. Регистрация также бесплатная, данные кредитной карты не требуются.




Зарегистрируйтесь на https://mailgun.com/signup и войдите в свой аккаунт. Для использования сервиса вам понадобиться Mailgun API Key а также указать свой домен. Также необходимо будет подвердить право владения доменом. Без этого, количество писем будет ограничено 300 в сутки.
Перейдите на https://mailgun.com/cp/my_account и в левом верхнем углу вы увидите свой API Key, строка вида key-3358fhrhs333dsj43e3e5532.




Mailgun предлагает собственный класс для отсылки сообщений, однако здесь я бы хотел бы поделиться более простым решением на базе PHP + cURL. На базе cURL написана функция send_mail:




<? function send_mail($email,$subject,$msg) { 
$api_key="";/* Api Key got from https://mailgun.com/cp/my_account */ 
$domain ="";/* Domain Name you given to Mailgun */ 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, 'api:'.$api_key); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($ch, CURLOPT_URL, 'https://api.mailgun.net/v2/'.$domain.'/messages'); 
curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'from' => 'Open <mail@youriste.com>',
'to' => $email,
'subject' => $subject,
'html' => $msg
));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
?>




Не забудьте задать переменные $api_key и $domain.
Теперь можно отсылать письма, передавая в функцию параметры:




$email - адрес получателя
$subject - тема письма
$msg - тело письма




Пример:




<?
send_mail("receiver@domain.com", "Hello!", "Have a nice day!");
?>



2019-03-20T13:08:44
Без рубрики

PHP глазами хакера Михаил Фленов

Купить книгу можно по адресу https://www.ozon.ru/context/detail/id/137632014/

Image
Вы можете скачать или просмотреть в браузере содержимое книги “PHP глазами хакера”.

Автор М. Фленов

Материал исключительно для ознакомления.

 

Скачать книгу

 

Как изменить версию php в консоли

Если у вас установлено несколько версий php в системе, то при вызове команды php в консоли, будет использоваться одна из них. Иногда необходимо для каких-то скриптов или сервисов управлять версией php в консоли. Я расскажу, как ее изменить.

 

Читать

deb-пакеты php5.5 и php5.3 под Debian Wheezy

Для одного клиента потребовалось обеспечить возможность переключения версии PHP для различных сайтов в панельке ISPConfig. На сервере установлен Debian Wheezy, в котором есть только PHP5.4.
Поэтому я скачал исходники PHP5.3 и PHP5.5 с сайта PHP: http://php.net/downloads.php, скомпилировал их и собрал из них простенькие deb-пакеты. Они включают в себя стандартный набор расширений и предоставляют бинарники для командной строки, cgi и php-fpm.
Выложил на github, вдруг кому-нибудь надо, чтоб быстро и работало:
https://github.com/scukonick/phpdeb

Можно спокойно устанавливать паралелльно дефолтному PHP, т.к. используются разные директории для установки.

Автор: AlexWinner

Как установить и настроить NGINX+PHP+XDebug на Ubuntu 12.04

1. Установка NGINX-сервера:
sudo add-apt-repository ppa:nginx/stable 
sudo apt-get update 
sudo apt-get install nginx
2. Установка PHP:
 

Если на вашем сервере php еще не установлен, то необходимо выполнить следующее:

sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql

В противном же случае достаточно установить пакет php5-fpm:

sudo apt-get install php5-fpm

3. Настройка виртуального хоста в NGINX

Открываем и редактируем файл  /etc/nginx/sites-available/default:

sudo gedit  /etc/nginx/sites-available/default

Для начала поменяем параметры root и index в секции server:

server{
...
    root: /var/www;
    index: index.php
...
}

Если вы уже пользуетесь веб-сервером apache, то для правильной работы nginx нужно будет поменять номер порта с 80 на 8000:

server{ 
 listen: 8000;
...
}

Убираем комментарии со следующих строк:

 location ~ .php$ {
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 include fastcgi_params;
  }

4. Запускаем NGINX

sudo service nginx start

Также запускаем сервис, отвечающий за работу php:

sudo service php5-fpm start

5. Установка и настройка XDebug

Устанавливаем точно так же как описано в первой части статьи «Как настроить NetBeans для работы с XDebug»

Далее небходимо отредактировать файл /etc/php5/fpm/php.ini.

sudo gedit /etc/php5/fpm/php.ini

Перед тегом Date добавляем следующий код:

zend_extension="/usr/lib/php5/20090626/xdebug.so"

xdebug.default_enable = On
xdebug.var_display_max_depth=6
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9900
xdebug.remote_handler=dbgp
xdebug.idekey=netbeans-xdebug
xdebug.remote_autostart=1
xdebug.remote_log=/tmp/xdebug.log
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir=/tmp/profiler
xdebug.show_local_vars=1
xdebug.overload_var_dump=1

… перезагружаем сервер

 

sudo service nginx restart

так как при перезагрузке сервера параметры php.ini автоматически не обновляются, необходимо также перезагрузить сервис php5-fpm:

 

sudo service php5-fpm restart

6. Настройка NetBeans

Открываем NetBeans Tools>Options>PHP>Debugging и в строке Debugger Port вводим значение 9900, нажимаем Ok.

На этом настройка завершена.

Осталось только поместить в /var/www тестовый файл index.php с кодом:

echo phpinfo();

Image

Автор: Sergiy Kamolov