12 Commits

Author SHA1 Message Date
sHa
b5109fbf54 uk language rename 2018-02-14 00:36:45 +02:00
sHa
ca599f35bc Merge branch 'master' of github.com:shadoll/sLetter 2018-02-13 10:22:29 +02:00
sHa
d42ecbf891 flag fix 2018-02-13 09:35:44 +02:00
sHa
de70577a72 Update README.md
link to packagist
2018-02-13 00:06:43 +02:00
sHa
247841160c lng fix 2018-02-12 15:04:10 +02:00
sHa
5eec9aa10e lng fix 2018-02-12 14:59:35 +02:00
sHa
dc92bc18d4 lng fix 2018-02-12 14:35:51 +02:00
sHa
563524fca4 gump validator 2018-02-12 14:18:39 +02:00
sHa
6f8fb693a1 gump validator 2018-02-12 14:01:31 +02:00
sHa
7eee0fb80e dfault lang switch to en 2018-02-12 12:49:03 +02:00
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
3 changed files with 39 additions and 17 deletions

View File

@@ -6,6 +6,8 @@ e-mail send library
`composer require shadoll/sletter` `composer require shadoll/sletter`
https://packagist.org/packages/shadoll/sletter
## usage ## usage
``` ```
@@ -18,12 +20,14 @@ set mail variables:
``` ```
$letter->set([ $letter->set([
'sender' => 'mailgun', // sender - support mail or mailgun-service 'language' => 'ua', // set language (en|ua|ru), default 'en'
'logoUri' => "https://site.com/logo.png", // link to logo that showing in letter 'logoUri' => "https://site.com/logo.png", // link to logo that showing in letter
'fromMail' => "site@site.com", // sender email 'fromMail' => "site@site.com", // sender email
'fromName' => "SiteLetter", // sender name 'fromName' => "SiteLetter", // sender name
'toMail' => "info@site.com", // resipient email 'toMail' => "info@site.com", // resipient email
'senderDetect' => true, // detect sender location by IP, default 'true'
'senderIP' => $_SERVER['REMOTE_ADDR'], 'senderIP' => $_SERVER['REMOTE_ADDR'],
'sender' => 'mailgun', // sender - support mail or mailgun-service
'mailgun_apikey' => 'key', 'mailgun_apikey' => 'key',
'mailgun_domain' => 'mg.site.com', 'mailgun_domain' => 'mg.site.com',
]); ]);

View File

@@ -3,7 +3,7 @@
* *
* @author sHa <sha@shadoll.com> * @author sHa <sha@shadoll.com>
* @package sLetter * @package sLetter
* @version 18.2.12 * @version 18.2.13
* *
*/ */

View File

@@ -3,7 +3,7 @@
* *
* @author sHa <sha@shadoll.com> * @author sHa <sha@shadoll.com>
* @package sLetter * @package sLetter
* @version 18.2.13 * @version 18.2.13-13
* *
*/ */
@@ -16,12 +16,13 @@ class sLetter{
public $error = false; public $error = false;
public $status = ""; public $status = "";
private $senderDetect = true;
private $sender = "mail"; private $sender = "mail";
private $header = ""; private $header = "";
private $message = ""; private $message = "";
private $subject = ""; private $subject = "";
private $language = "ua"; private $language = "en";
private $lang = []; private $lang = [];
private $fromMail = ""; private $fromMail = "";
@@ -33,10 +34,18 @@ class sLetter{
private $logoUri = ""; private $logoUri = "";
function __construct(){ function __construct(){
$this->setLang(require_once(__DIR__."/lng/".$this->language.".php")); $this->loadLanguage();
if($this->senderDetect)
$this->detect();
} }
function setData($data,$return=false){ function loadLanguage($return=false){
$this->setLang(require_once(__DIR__."/lng/".$this->language.".php"));
return $return?$this->lang:$this;
}
function setData($data,$raw=false,$return=false){
if(empty($data) || !is_array($data)) if(empty($data) || !is_array($data))
return $return?$this->fields:$this; return $return?$this->fields:$this;
@@ -45,7 +54,10 @@ class sLetter{
foreach($data as $key=>$val) foreach($data as $key=>$val)
if(!empty($val)) if(!empty($val))
$this->fields[$key] = is_string($val)?trim(stripslashes($val)):$val; if(!$raw)
$this->fields[$key] = is_string($val)?trim(stripslashes(strip_tags($val))):$val;
else
$this->fields[$key] = is_string($val)?trim($val):$val;
return $return?$this->fields:$this; return $return?$this->fields:$this;
} }
@@ -67,8 +79,11 @@ class sLetter{
function set($data){ function set($data){
if(!empty($data) && is_array($data)) if(!empty($data) && is_array($data))
foreach($data as $key=>$val) foreach($data as $key=>$val)
if(!empty($key) && !empty($val)) if(!empty($key) && !empty($val)){
$this->{$key} = is_string($val)?trim(stripslashes($val)):$val; $this->{$key} = is_string($val)?trim(stripslashes($val)):$val;
if($key=='language')
$this->loadLanguage();
}
return $this; return $this;
} }
@@ -88,6 +103,9 @@ class sLetter{
} }
function message($return=false){ function message($return=false){
if(empty($this->lang))
$this->loadLanguage();
$this->message .= "<html><body style='font-family:Arial,sans-serif;'>"; $this->message .= "<html><body style='font-family:Arial,sans-serif;'>";
if(!empty($this->logoUri)) if(!empty($this->logoUri))
@@ -107,11 +125,12 @@ class sLetter{
} }
function detect($return=false){ function detect($return=false){
if(empty($this->senderIP))
$this->senderIP = $_SERVER['REMOTE_ADDR'];
if(!empty($this->senderIP)){ if(!empty($this->senderIP)){
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$this->senderIP)); $query = @unserialize(file_get_contents('http://ip-api.com/php/'.$this->senderIP));
if($query && $query['status'] == 'success'){ if($query && $query['status'] == 'success'){
$this->setData([ $this->setData([
'senderIP' => $this->senderIP, 'senderIP' => $this->senderIP,
'flag' => "<img style='height:14px; width:auto' src='http://www.geognos.com/api/en/countries/flag/".$query['countryCode'].".png'>", 'flag' => "<img style='height:14px; width:auto' src='http://www.geognos.com/api/en/countries/flag/".$query['countryCode'].".png'>",
@@ -119,18 +138,17 @@ class sLetter{
'region' => $query['regionName'], 'region' => $query['regionName'],
'city' => $query['city'], 'city' => $query['city'],
'provider' => $query['isp'], 'provider' => $query['isp'],
]); ],true);
} }
} }
return $return?$this->fields:$this; return $return?$this->fields:$this;
} }
function validate($data,$return=false){ function validate($data,$return=false){
if(!empty($data) && is_array($data)) $is_valid = \GUMP::is_valid($this->fields, $data);
foreach($data as $val) if($is_valid !== true){
if(empty($val)){
$this->error = true; $this->error = true;
$this->status = "Empty value"; $this->status = $is_valid;
} }
return $return?$this->error:$this; return $return?$this->error:$this;