5 Commits

Author SHA1 Message Date
sHa
002fbbb4fc auto sender detect by IP 2018-02-12 12:31:43 +02:00
sHa
6cb972fe73 strip tags for fields 2018-02-12 12:14:05 +02:00
sHa
9d302c9540 gump validator add to composer require 2018-02-12 11:48:02 +02:00
sHa
91d1e47a05 usage manual 2018-02-12 11:37:15 +02:00
sHa
6656909deb non project files 2018-02-12 09:39:41 +02:00
4 changed files with 120 additions and 23 deletions

View File

@@ -1 +1,84 @@
# sLetter
e-mail send library
## install
`composer require shadoll/sletter`
## usage
```
require __DIR__.'/../vendor/autoload.php';
$letter = (new shadoll\sLetter);
```
set mail variables:
```
$letter->set([
'sender' => 'mailgun', // sender - support mail or mailgun-service
'logoUri' => "https://site.com/logo.png", // link to logo that showing in letter
'fromMail' => "site@site.com", // sender email
'fromName' => "SiteLetter", // sender name
'toMail' => "info@site.com", // resipient email
'senderDetect' => true, // detect sender location by IP, default 'true'
'senderIP' => $_SERVER['REMOTE_ADDR'],
'mailgun_apikey' => 'key',
'mailgun_domain' => 'mg.site.com',
]);
```
adding fields titles:
```
$letter->setLang([
'order' => 'Замовлення',
'message' => 'Повідомлення',
'comment' => 'Повідомлення',
'date' => 'Дата',
'time' => 'Час',
'type' => 'Тип',
'doors' => 'Кількість дверцят',
'width' => 'Ширина',
'depth' => 'Глибина',
]);
```
set fields from form:
```
$letter->setData([
'name' => !empty($_REQUEST['name'])?($_REQUEST['name']):'',
'phone' => !empty($_REQUEST['phone'])?($_REQUEST['phone']):'',
'email' => !empty($_REQUEST['email'])?($_REQUEST['email']):'',
'message' => !empty($_REQUEST['message'])?($_REQUEST['message']):'',
]);
```
fields list to validate before send (not working now):
```
$letter
->validate([
'name',
'phone',
'email',
])
```
sending email
```
$letter
->detect()
->send()
->state();
```
detect - get sender info from his IP
send - if no error send email
state - action result (not fully working now)

View File

@@ -1,11 +1,11 @@
{
"name": "shadoll/sletter",
"description": "shadoll sLetter - e-mail send library",
"version": "18.2.13",
"prefer-stable": true,
"require": {
"php": "^7.0",
"mailgun/mailgun-php": "^2.4"
"mailgun/mailgun-php": "^2.4",
"wixel/gump": "dev-master"
},
"authors": [
{

View File

@@ -2,8 +2,8 @@
/**
*
* @author sHa <sha@shadoll.com>
* @package shadoll/sLetter
* @version 18.2.12
* @package sLetter
* @version 18.2.13-6
*
*/
@@ -16,6 +16,7 @@ class sLetter{
public $error = false;
public $status = "";
private $senderDetect = true;
private $sender = "mail";
private $header = "";
private $message = "";
@@ -34,6 +35,8 @@ class sLetter{
function __construct(){
$this->setLang(require_once(__DIR__."/lng/".$this->language.".php"));
if($this->senderDetect)
$this->detect();
}
function setData($data,$return=false){
@@ -45,7 +48,7 @@ class sLetter{
foreach($data as $key=>$val)
if(!empty($val))
$this->fields[$key] = is_string($val)?trim(stripslashes($val)):$val;
$this->fields[$key] = is_string($val)?trim(stripslashes(strip_tags($val))):$val;
return $return?$this->fields:$this;
}
@@ -107,6 +110,9 @@ class sLetter{
}
function detect($return=false){
if(empty($this->senderIP))
$this->senderIP = $_SERVER['REMOTE_ADDR'];
if(!empty($this->senderIP)){
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$this->senderIP));
if($query && $query['status'] == 'success'){

8
sLetter.code-workspace Normal file
View File

@@ -0,0 +1,8 @@
{
"folders": [
{
"path": "."
}
],
"settings": {}
}