本文整理汇总了PHP中Validate::isMailName方法的典型用法代码示例。如果您正苦于以下问题:PHP Validate::isMailName方法的具体用法?PHP Validate::isMailName怎么用?PHP Validate::isMailName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Validate
的用法示例。
在下文中一共展示了Validate::isMailName方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: checkDB
public static function checkDB($srv, $login, $password, $name, $posted = true, $engine = false)
{
include_once INSTALL_PATH . '/../classes/Validate.php';
include_once INSTALL_PATH . '/../classes/Db.php';
include_once INSTALL_PATH . '/../classes/MySQL.php';
if ($posted) {
// Check POST data...
$data_check = array(!isset($_GET['server']) or empty($_GET['server']), !Validate::isMailName($_GET['server']), !isset($_GET['type']) or empty($_GET['type']), !Validate::isMailName($_GET['type']), !isset($_GET['name']) or empty($_GET['name']), !Validate::isMailName($_GET['name']), !isset($_GET['login']) or empty($_GET['login']), !Validate::isMailName($_GET['login']), !isset($_GET['password']));
foreach ($data_check as $data) {
if ($data) {
return 8;
}
}
}
switch (MySQL::tryToConnect(trim($srv), trim($login), trim($password), trim($name), trim($engine))) {
case 0:
if (MySQL::tryUTF8(trim($srv), trim($login), trim($password))) {
return true;
}
return 49;
break;
case 1:
return 25;
break;
case 2:
return 24;
break;
case 3:
return 50;
break;
}
}
示例2: postProcess
public function postProcess()
{
if (Tools::isSubmit('submitEmailingStep2')) {
$this->campaign_sender_email = (string) Tools::getValue('campaign_sender_email');
$this->campaign_sender_name = (string) Tools::getValue('campaign_sender_name');
if (empty($this->campaign_id) || empty($this->campaign_sender_email) || empty($this->campaign_sender_name)) {
$this->errors[] = $this->module->l('Please verify the required fields', 'adminmarketingestep2');
} elseif (!Validate::isEmail($this->campaign_sender_email)) {
$this->errors[] = $this->module->l('Please verify your email address', 'adminmarketingestep2');
} elseif (!Validate::isMailName($this->campaign_sender_name)) {
$this->errors[] = $this->module->l('Please verify your sender name', 'adminmarketingestep2');
} else {
Db::getInstance()->update('expressmailing_email', array('campaign_sender_email' => pSQL($this->campaign_sender_email), 'campaign_sender_name' => pSQL($this->campaign_sender_name)), 'campaign_id = ' . pSQL($this->campaign_id));
Tools::redirectAdmin('index.php?controller=AdminMarketingEStep3&campaign_id=' . $this->campaign_id . '&token=' . Tools::getAdminTokenLite('AdminMarketingEStep3'));
exit;
}
}
}
示例3: Send
public static function Send($id_lang, $template, $subject, $templateVars, $to, $toName = NULL, $from = NULL, $fromName = NULL, $fileAttachment = NULL, $modeSMTP = NULL, $templatePath = _PS_MAIL_DIR_)
{
$configuration = Configuration::getMultiple(array('PS_SHOP_EMAIL', 'PS_MAIL_METHOD', 'PS_MAIL_SERVER', 'PS_MAIL_USER', 'PS_MAIL_PASSWD', 'PS_SHOP_NAME', 'PS_MAIL_SMTP_ENCRYPTION', 'PS_MAIL_SMTP_PORT', 'PS_MAIL_METHOD', 'PS_MAIL_TYPE'));
if (!isset($configuration['PS_MAIL_SMTP_ENCRYPTION'])) {
$configuration['PS_MAIL_SMTP_ENCRYPTION'] = "off";
}
if (!isset($configuration['PS_MAIL_SMTP_PORT'])) {
$configuration['PS_MAIL_SMTP_PORT'] = "default";
}
if (!isset($from)) {
$from = $configuration['PS_SHOP_EMAIL'];
}
if (!isset($fromName)) {
$fromName = $configuration['PS_SHOP_NAME'];
}
if (!empty($from) and !Validate::isEmail($from) or !empty($fromName) and !Validate::isMailName($fromName) or !is_array($to) and !Validate::isEmail($to) or !empty($toName) and !Validate::isMailName($toName) or !is_array($templateVars) or !Validate::isTplName($template) or !Validate::isMailSubject($subject)) {
die(Tools::displayError('Error: mail parameters are corrupted'));
}
/* Construct multiple recipients list if needed */
if (is_array($to)) {
$to_list = new Swift_RecipientList();
foreach ($to as $key => $addr) {
$to_name = NULL;
$addr = trim($addr);
if (!Validate::isEmail($addr)) {
die(Tools::displayError('Error: mail parameters are corrupted'));
}
if ($toName and is_array($toName) and Validate::isGenericName($toName[$key])) {
$to_name = $toName[$key];
}
$to_list->addTo($addr, $to_name);
}
$to_plugin = $to[0];
$to = $to_list;
} else {
/* Simple recipient, one address */
$to_plugin = $to;
$to = new Swift_Address($to, $toName);
}
try {
/* Connect with the appropriate configuration */
if (intval($configuration['PS_MAIL_METHOD']) == 2) {
$connection = new Swift_Connection_SMTP($configuration['PS_MAIL_SERVER'], $configuration['PS_MAIL_SMTP_PORT'], $configuration['PS_MAIL_SMTP_ENCRYPTION'] == "ssl" ? Swift_Connection_SMTP::ENC_SSL : ($configuration['PS_MAIL_SMTP_ENCRYPTION'] == "tls" ? Swift_Connection_SMTP::ENC_TLS : Swift_Connection_SMTP::ENC_OFF));
$connection->setTimeout(4);
if (!$connection) {
return false;
}
if (!empty($configuration['PS_MAIL_USER']) and !empty($configuration['PS_MAIL_PASSWD'])) {
$connection->setUsername($configuration['PS_MAIL_USER']);
$connection->setPassword($configuration['PS_MAIL_PASSWD']);
}
} else {
$connection = new Swift_Connection_NativeMail();
}
if (!$connection) {
return false;
}
$swift = new Swift($connection);
/* Get templates content */
$iso = Language::getIsoById(intval($id_lang));
if (!$iso) {
die(Tools::displayError('Error - No iso code for email !'));
}
$template = $iso . '/' . $template;
if (!file_exists($templatePath . $template . '.txt') or !file_exists($templatePath . $template . '.html')) {
die(Tools::displayError('Error - The following email template is missing:') . ' ' . $templatePath . $template . '.txt');
}
$templateHtml = file_get_contents($templatePath . $template . '.html');
$templateTxt = strip_tags(html_entity_decode(file_get_contents($templatePath . $template . '.txt'), NULL, 'utf-8'));
include_once dirname(__FILE__) . '/../mails/' . $iso . '/lang.php';
global $_LANGMAIL;
/* Create mail and attach differents parts */
$message = new Swift_Message('[' . Configuration::get('PS_SHOP_NAME') . '] ' . ((is_array($_LANGMAIL) and key_exists($subject, $_LANGMAIL)) ? $_LANGMAIL[$subject] : $subject));
$templateVars['{shop_logo}'] = file_exists(_PS_IMG_DIR_ . 'logo.jpg') ? $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_ . 'logo.jpg'))) : '';
$templateVars['{shop_name}'] = htmlentities(Configuration::get('PS_SHOP_NAME'), NULL, 'utf-8');
$templateVars['{shop_url}'] = 'http://' . htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8') . __PS_BASE_URI__;
$swift->attachPlugin(new Swift_Plugin_Decorator(array($to_plugin => $templateVars)), 'decorator');
if ($configuration['PS_MAIL_TYPE'] == 3 or $configuration['PS_MAIL_TYPE'] == 2) {
$message->attach(new Swift_Message_Part($templateTxt, 'text/plain', '8bit', 'utf-8'));
}
if ($configuration['PS_MAIL_TYPE'] == 3 or $configuration['PS_MAIL_TYPE'] == 1) {
$message->attach(new Swift_Message_Part($templateHtml, 'text/html', '8bit', 'utf-8'));
}
if ($fileAttachment and isset($fileAttachment['content']) and isset($fileAttachment['name']) and isset($fileAttachment['mime'])) {
$message->attach(new Swift_Message_Attachment($fileAttachment['content'], $fileAttachment['name'], $fileAttachment['mime']));
}
/* Send mail */
$send = $swift->send($message, $to, new Swift_Address($from, $fromName));
$swift->disconnect();
return $send;
} catch (Swift_ConnectionException $e) {
return false;
}
}
示例4: die
if (!unlink(SETTINGS_FILE)) {
die('<action result="fail" error="17" />' . "\n");
}
}
include INSTALL_PATH . '/classes/AddConfToFile.php';
include INSTALL_PATH . '/../classes/Validate.php';
include INSTALL_PATH . '/../classes/Db.php';
include INSTALL_PATH . '/../classes/Tools.php';
//check db access
include_once INSTALL_PATH . '/classes/ToolsInstall.php';
$resultDB = ToolsInstall::checkDB($_GET['server'], $_GET['login'], $_GET['password'], $_GET['name']);
if ($resultDB !== true) {
die("<action result='fail' error='" . $resultDB . "'/>\n");
}
// Check POST data...
$data_check = array(!isset($_GET['mode']) or $_GET['mode'] != "full" and $_GET['mode'] != "lite", !isset($_GET['tablePrefix']) or !Validate::isMailName($_GET['tablePrefix']) or !preg_match('/^[a-z0-9_]*$/i', $_GET['tablePrefix']));
foreach ($data_check as $data) {
if ($data) {
die('<action result="fail" error="8"/>' . "\n");
}
}
// Writing data in settings file
$oldLevel = error_reporting(E_ALL);
$datas = array(array('_DB_SERVER_', $_GET['server']), array('_DB_TYPE_', $_GET['type']), array('_DB_NAME_', $_GET['name']), array('_DB_USER_', $_GET['login']), array('_DB_PASSWD_', $_GET['password']), array('_DB_PREFIX_', $_GET['tablePrefix']), array('__PS_BASE_URI__', str_replace(' ', '%20', INSTALLER__PS_BASE_URI)), array('_THEME_NAME_', 'prestashop'), array('_COOKIE_KEY_', Tools::passwdGen(56)), array('_COOKIE_IV_', Tools::passwdGen(8)), array('_PS_CREATION_DATE_', date('Y-m-d')), array('_PS_VERSION_', INSTALL_VERSION));
error_reporting($oldLevel);
$confFile = new AddConfToFile(SETTINGS_FILE, 'w');
if ($confFile->error) {
die('<action result="fail" error="' . $confFile->error . '" />' . "\n");
}
foreach ($datas as $data) {
$confFile->writeInFile($data[0], $data[1]);
示例5: Send
/**
* Send Email
*
* @param int $id_lang Language of the email (to translate the template)
* @param string $template Template: the name of template not be a var but a string !
* @param string $subject
* @param string $template_vars
* @param string $to
* @param string $to_name
* @param string $from
* @param string $from_name
* @param array $file_attachment Array with three parameters (content, mime and name). You can use an array of array to attach multiple files
* @param bool $modeSMTP
* @param string $template_path
* @param bool $die
*/
public static function Send($id_lang, $template, $subject, $template_vars, $to, $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null, $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null)
{
$theme_path = _PS_THEME_DIR_;
// Get the path of theme by id_shop if exist
if (is_numeric($id_shop) && $id_shop) {
$shop = new Shop((int) $id_shop);
$theme_name = $shop->getTheme();
if (_THEME_NAME_ != $theme_name) {
$theme_path = _PS_ROOT_DIR_ . '/themes/' . $theme_name . '/';
}
}
$configuration = Configuration::getMultiple(array('PS_SHOP_EMAIL', 'PS_MAIL_METHOD', 'PS_MAIL_SERVER', 'PS_MAIL_USER', 'PS_MAIL_PASSWD', 'PS_SHOP_NAME', 'PS_MAIL_SMTP_ENCRYPTION', 'PS_MAIL_SMTP_PORT', 'PS_MAIL_METHOD', 'PS_MAIL_TYPE'));
if (!isset($configuration['PS_MAIL_SMTP_ENCRYPTION'])) {
$configuration['PS_MAIL_SMTP_ENCRYPTION'] = 'off';
}
if (!isset($configuration['PS_MAIL_SMTP_PORT'])) {
$configuration['PS_MAIL_SMTP_PORT'] = 'default';
}
// Sending an e-mail can be of vital importance for the merchant, when his password is lost for example, so we must not die but do our best to send the e-mail
if (!isset($from) || !Validate::isEmail($from)) {
$from = $configuration['PS_SHOP_EMAIL'];
}
if (!Validate::isEmail($from)) {
$from = null;
}
// $from_name is not that important, no need to die if it is not valid
if (!isset($from_name) || !Validate::isMailName($from_name)) {
$from_name = $configuration['PS_SHOP_NAME'];
}
if (!Validate::isMailName($from_name)) {
$from_name = null;
}
// It would be difficult to send an e-mail if the e-mail is not valid, so this time we can die if there is a problem
if (!is_array($to) && !Validate::isEmail($to)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "to" is corrupted'), $die);
return false;
}
if (!is_array($template_vars)) {
$template_vars = array();
}
// Do not crash for this error, that may be a complicated customer name
if (is_string($to_name) && !empty($to_name) && !Validate::isMailName($to_name)) {
$to_name = null;
}
if (!Validate::isTplName($template)) {
Tools::dieOrLog(Tools::displayError('Error: invalid e-mail template'), $die);
return false;
}
if (!Validate::isMailSubject($subject)) {
Tools::dieOrLog(Tools::displayError('Error: invalid e-mail subject'), $die);
return false;
}
/* Construct multiple recipients list if needed */
if (is_array($to) && isset($to)) {
$to_list = new Swift_RecipientList();
foreach ($to as $key => $addr) {
$to_name = null;
$addr = trim($addr);
if (!Validate::isEmail($addr)) {
Tools::dieOrLog(Tools::displayError('Error: invalid e-mail address'), $die);
return false;
}
if (is_array($to_name)) {
if ($to_name && is_array($to_name) && Validate::isGenericName($to_name[$key])) {
$to_name = $to_name[$key];
}
}
if ($to_name == null) {
$to_name = $addr;
}
/* Encode accentuated chars */
$to_list->addTo($addr, '=?UTF-8?B?' . base64_encode($to_name) . '?=');
}
$to_plugin = $to[0];
$to = $to_list;
} else {
/* Simple recipient, one address */
$to_plugin = $to;
if ($to_name == null) {
$to_name = $to;
}
$to = new Swift_Address($to, '=?UTF-8?B?' . base64_encode($to_name) . '?=');
}
try {
//.........这里部分代码省略.........
示例6: Send
/**
* Send Email
*
* @param int $id_lang Language of the email (to translate the template)
* @param string $template Template: the name of template not be a var but a string !
* @param string $subject
* @param string $template_vars
* @param string $to
* @param string $to_name
* @param string $from
* @param string $from_name
* @param array $file_attachment Array with three parameters (content, mime and name). You can use an array of array to attach multiple files
* @param bool $modeSMTP
* @param string $template_path
* @param bool $die
* @param string $bcc Bcc recipient
*/
public static function Send($id_lang, $template, $subject, $template_vars, $to, $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null, $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null)
{
$configuration = Configuration::getMultiple(array('PS_SHOP_EMAIL', 'PS_MAIL_METHOD', 'PS_MAIL_SERVER', 'PS_MAIL_USER', 'PS_MAIL_PASSWD', 'PS_SHOP_NAME', 'PS_MAIL_SMTP_ENCRYPTION', 'PS_MAIL_SMTP_PORT', 'PS_MAIL_TYPE'), null, null, $id_shop);
// Returns immediatly if emails are deactivated
if ($configuration['PS_MAIL_METHOD'] == 3) {
return true;
}
$theme_path = _PS_THEME_DIR_;
// Get the path of theme by id_shop if exist
if (is_numeric($id_shop) && $id_shop) {
$shop = new Shop((int) $id_shop);
$theme_name = $shop->getTheme();
if (_THEME_NAME_ != $theme_name) {
$theme_path = _PS_ROOT_DIR_ . '/themes/' . $theme_name . '/';
}
}
if (!isset($configuration['PS_MAIL_SMTP_ENCRYPTION'])) {
$configuration['PS_MAIL_SMTP_ENCRYPTION'] = 'off';
}
if (!isset($configuration['PS_MAIL_SMTP_PORT'])) {
$configuration['PS_MAIL_SMTP_PORT'] = 'default';
}
// Sending an e-mail can be of vital importance for the merchant, when his password is lost for example, so we must not die but do our best to send the e-mail
if (!isset($from) || !Validate::isEmail($from)) {
$from = $configuration['PS_SHOP_EMAIL'];
}
if (!Validate::isEmail($from)) {
$from = null;
}
// $from_name is not that important, no need to die if it is not valid
if (!isset($from_name) || !Validate::isMailName($from_name)) {
$from_name = $configuration['PS_SHOP_NAME'];
}
if (!Validate::isMailName($from_name)) {
$from_name = null;
}
// It would be difficult to send an e-mail if the e-mail is not valid, so this time we can die if there is a problem
if (!is_array($to) && !Validate::isEmail($to)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "to" is corrupted'), $die);
return false;
}
if (!is_array($template_vars)) {
$template_vars = array();
}
// Do not crash for this error, that may be a complicated customer name
if (is_string($to_name) && !empty($to_name) && !Validate::isMailName($to_name)) {
$to_name = null;
}
if (!Validate::isTplName($template)) {
Tools::dieOrLog(Tools::displayError('Error: invalid e-mail template'), $die);
return false;
}
if (!Validate::isMailSubject($subject)) {
Tools::dieOrLog(Tools::displayError('Error: invalid e-mail subject'), $die);
return false;
}
/* Construct multiple recipients list if needed */
$to_list = new Swift_RecipientList();
if (is_array($to) && isset($to)) {
foreach ($to as $key => $addr) {
$addr = trim($addr);
if (!Validate::isEmail($addr)) {
Tools::dieOrLog(Tools::displayError('Error: invalid e-mail address'), $die);
return false;
}
if (is_array($to_name)) {
if ($to_name && is_array($to_name) && Validate::isGenericName($to_name[$key])) {
$to_name = $to_name[$key];
}
}
if ($to_name == null || $to_name == $addr) {
$to_name = '';
} else {
if (function_exists('mb_encode_mimeheader')) {
$to_name = mb_encode_mimeheader($to_name, 'utf-8');
} else {
$to_name = self::mimeEncode($to_name);
}
}
$to_list->addTo($addr, $to_name);
}
$to_plugin = $to[0];
} else {
//.........这里部分代码省略.........
示例7: Send
public static function Send($id_lang, $template, $subject, $templateVars, $to, $toName = NULL, $from = NULL, $fromName = NULL, $fileAttachment = NULL, $modeSMTP = NULL, $templatePath = _PS_MAIL_DIR_, $die = false)
{
$configuration = Configuration::getMultiple(array('PS_SHOP_EMAIL', 'PS_MAIL_METHOD', 'PS_MAIL_SERVER', 'PS_MAIL_USER', 'PS_MAIL_PASSWD', 'PS_SHOP_NAME', 'PS_MAIL_SMTP_ENCRYPTION', 'PS_MAIL_SMTP_PORT', 'PS_MAIL_METHOD', 'PS_MAIL_TYPE'));
if (!isset($configuration['PS_MAIL_SMTP_ENCRYPTION'])) {
$configuration['PS_MAIL_SMTP_ENCRYPTION'] = 'off';
}
if (!isset($configuration['PS_MAIL_SMTP_PORT'])) {
$configuration['PS_MAIL_SMTP_PORT'] = 'default';
}
if (!isset($from)) {
$from = $configuration['PS_SHOP_EMAIL'];
}
if (!isset($fromName)) {
$fromName = $configuration['PS_SHOP_NAME'];
}
if (!empty($from) and !Validate::isEmail($from)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "from" is corrupted'), $die);
return false;
}
if (!empty($fromName) and !Validate::isMailName($fromName)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "fromName" is corrupted'), $die);
return false;
}
if (!is_array($to) and !Validate::isEmail($to)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "to" is corrupted'), $die);
return false;
}
if (!is_array($templateVars)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "templateVars" is not an array'), $die);
return false;
}
// Do not crash for this error, that may be a complicated customer name
if (is_string($toName)) {
if (!empty($toName) and !Validate::isMailName($toName)) {
$toName = NULL;
}
}
if (!Validate::isTplName($template)) {
Tools::dieOrLog(Tools::displayError('Error: invalid email template'), $die);
return false;
}
if (!Validate::isMailSubject($subject)) {
Tools::dieOrLog(Tools::displayError('Error: invalid email subject'), $die);
return false;
}
/* Construct multiple recipients list if needed */
if (is_array($to) and isset($to)) {
$to_list = new Swift_RecipientList();
foreach ($to as $key => $addr) {
$to_name = NULL;
$addr = trim($addr);
if (!Validate::isEmail($addr)) {
Tools::dieOrLog(Tools::displayError('Error: invalid email address'), $die);
return false;
}
if (is_array($toName)) {
if ($toName and is_array($toName) and Validate::isGenericName($toName[$key])) {
$to_name = $toName[$key];
}
}
$to_list->addTo($addr, $to_name);
}
$to_plugin = $to[0];
$to = $to_list;
} else {
/* Simple recipient, one address */
$to_plugin = $to;
$to = new Swift_Address($to, $toName);
}
try {
/* Connect with the appropriate configuration */
if ($configuration['PS_MAIL_METHOD'] == 2) {
if (empty($configuration['PS_MAIL_SERVER']) or empty($configuration['PS_MAIL_SMTP_PORT'])) {
Tools::dieOrLog(Tools::displayError('Error: invalid SMTP server or SMTP port'), $die);
return false;
}
$connection = new Swift_Connection_SMTP($configuration['PS_MAIL_SERVER'], $configuration['PS_MAIL_SMTP_PORT'], $configuration['PS_MAIL_SMTP_ENCRYPTION'] == "ssl" ? Swift_Connection_SMTP::ENC_SSL : ($configuration['PS_MAIL_SMTP_ENCRYPTION'] == "tls" ? Swift_Connection_SMTP::ENC_TLS : Swift_Connection_SMTP::ENC_OFF));
$connection->setTimeout(4);
if (!$connection) {
return false;
}
if (!empty($configuration['PS_MAIL_USER'])) {
$connection->setUsername($configuration['PS_MAIL_USER']);
}
if (!empty($configuration['PS_MAIL_PASSWD'])) {
$connection->setPassword($configuration['PS_MAIL_PASSWD']);
}
} else {
$connection = new Swift_Connection_NativeMail();
}
if (!$connection) {
return false;
}
$swift = new Swift($connection, Configuration::get('PS_MAIL_DOMAIN'));
/* Get templates content */
$iso = Language::getIsoById((int) $id_lang);
if (!$iso) {
Tools::dieOrLog(Tools::displayError('Error - No ISO code for email'), $die);
return false;
}
//.........这里部分代码省略.........
示例8: Send
/**
* Send Email
*
* @param int $id_lang Language ID of the email (to translate the template)
* @param string $template Template: the name of template not be a var but a string !
* @param string $subject Subject of the email
* @param string $template_vars Template variables for the email
* @param string $to To email
* @param string $to_name To name
* @param string $from From email
* @param string $from_name To email
* @param array $file_attachment Array with three parameters (content, mime and name). You can use an array of array to attach multiple files
* @param bool $mode_smtp SMTP mode (deprecated)
* @param string $template_path Template path
* @param bool $die Die after error
* @param string $bcc Bcc recipient
* @return bool|int Whether sending was successful. If not at all, false, otherwise amount of recipients succeeded.
*/
public static function Send($id_lang, $template, $subject, $template_vars, $to, $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null, $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null, $reply_to = null)
{
if (!$id_shop) {
$id_shop = Context::getContext()->shop->id;
}
$configuration = Configuration::getMultiple(array('PS_SHOP_EMAIL', 'PS_MAIL_METHOD', 'PS_MAIL_SERVER', 'PS_MAIL_USER', 'PS_MAIL_PASSWD', 'PS_SHOP_NAME', 'PS_MAIL_SMTP_ENCRYPTION', 'PS_MAIL_SMTP_PORT', 'PS_MAIL_TYPE'), null, null, $id_shop);
// Returns immediatly if emails are deactivated
if ($configuration['PS_MAIL_METHOD'] == 3) {
return true;
}
$theme_path = _PS_THEME_DIR_;
// Get the path of theme by id_shop if exist
if (is_numeric($id_shop) && $id_shop) {
$shop = new Shop((int) $id_shop);
$theme_name = $shop->getTheme();
if (_THEME_NAME_ != $theme_name) {
$theme_path = _PS_ROOT_DIR_ . '/themes/' . $theme_name . '/';
}
}
if (!isset($configuration['PS_MAIL_SMTP_ENCRYPTION']) || Tools::strtolower($configuration['PS_MAIL_SMTP_ENCRYPTION']) === 'off') {
$configuration['PS_MAIL_SMTP_ENCRYPTION'] = false;
}
if (!isset($configuration['PS_MAIL_SMTP_PORT'])) {
$configuration['PS_MAIL_SMTP_PORT'] = 'default';
}
// Sending an e-mail can be of vital importance for the merchant, when his password is lost for example, so we must not die but do our best to send the e-mail
if (!isset($from) || !Validate::isEmail($from)) {
$from = $configuration['PS_SHOP_EMAIL'];
}
if (!Validate::isEmail($from)) {
$from = null;
}
// $from_name is not that important, no need to die if it is not valid
if (!isset($from_name) || !Validate::isMailName($from_name)) {
$from_name = $configuration['PS_SHOP_NAME'];
}
if (!Validate::isMailName($from_name)) {
$from_name = null;
}
// It would be difficult to send an e-mail if the e-mail is not valid, so this time we can die if there is a problem
if (!is_array($to) && !Validate::isEmail($to)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "to" is corrupted'), $die);
return false;
}
// if bcc is not null, make sure it's a vaild e-mail
if (!is_null($bcc) && !is_array($bcc) && !Validate::isEmail($bcc)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "bcc" is corrupted'), $die);
$bcc = null;
}
if (!is_array($template_vars)) {
$template_vars = array();
}
// Do not crash for this error, that may be a complicated customer name
if (is_string($to_name) && !empty($to_name) && !Validate::isMailName($to_name)) {
$to_name = null;
}
if (!Validate::isTplName($template)) {
Tools::dieOrLog(Tools::displayError('Error: invalid e-mail template'), $die);
return false;
}
if (!Validate::isMailSubject($subject)) {
Tools::dieOrLog(Tools::displayError('Error: invalid e-mail subject'), $die);
return false;
}
/* Construct multiple recipients list if needed */
$message = Swift_Message::newInstance();
if (is_array($to) && isset($to)) {
foreach ($to as $key => $addr) {
$addr = trim($addr);
if (!Validate::isEmail($addr)) {
Tools::dieOrLog(Tools::displayError('Error: invalid e-mail address'), $die);
return false;
}
if (is_array($to_name) && $to_name && is_array($to_name) && Validate::isGenericName($to_name[$key])) {
$to_name = $to_name[$key];
}
$to_name = $to_name == null || $to_name == $addr ? '' : self::mimeEncode($to_name);
$message->addTo($addr, $to_name);
}
$to_plugin = $to[0];
} else {
/* Simple recipient, one address */
//.........这里部分代码省略.........
示例9: Send
public static function Send($template, $subject, $templateVars, $to, $toName = null, $from = null, $fromName = null, $fileAttachment = null, $modeSMTP = null, $templatePath = null, $die = false)
{
$configuration = Configuration::getMultiple(array('TM_SHOP_EMAIL', 'TM_MAIL_METHOD', 'TM_MAIL_SERVER', 'TM_MAIL_USER', 'TM_MAIL_PASSWD', 'TM_SHOP_NAME', 'TM_MAIL_SMTP_ENCRYPTION', 'TM_MAIL_SMTP_PORT', 'TM_MAIL_METHOD'));
if (!isset($configuration['TM_MAIL_SMTP_ENCRYPTION'])) {
$configuration['TM_MAIL_SMTP_ENCRYPTION'] = 'off';
}
if (!isset($configuration['TM_MAIL_SMTP_PORT'])) {
$configuration['TM_MAIL_SMTP_PORT'] = 'default';
}
if (!isset($from)) {
$from = $configuration['TM_SHOP_EMAIL'];
}
if (!isset($fromName)) {
$fromName = $configuration['TM_SHOP_NAME'];
}
if (!empty($from) && !Validate::isEmail($from)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "from" is corrupted'), $die);
return false;
}
if (!empty($fromName) && !Validate::isMailName($fromName)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "fromName" is corrupted'), $die);
return false;
}
if (!is_array($to) && !Validate::isEmail($to)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "to" is corrupted'), $die);
return false;
}
if (!is_array($templateVars)) {
Tools::dieOrLog(Tools::displayError('Error: parameter "templateVars" is not an array'), $die);
return false;
}
// Do not crash for this error, that may be a complicated customer name
if (is_string($toName)) {
if (!empty($toName) && !Validate::isMailName($toName)) {
$toName = null;
}
}
if (!Validate::isTplName($template)) {
Tools::dieOrLog(Tools::displayError('Error: invalid email template'), $die);
return false;
}
if (!Validate::isMailSubject($subject)) {
Tools::dieOrLog(Tools::displayError('Error: invalid email subject'), $die);
return false;
}
/* Construct multiple recipients list if needed */
if (isset($to) && is_array($to)) {
$to_list = new Swift_RecipientList();
foreach ($to as $key => $addr) {
$to_name = null;
$addr = trim($addr);
if (!Validate::isEmail($addr)) {
Tools::dieOrLog(Tools::displayError('Error: invalid email address'), $die);
return false;
}
if (is_array($toName)) {
if ($toName && is_array($toName) && Validate::isGenericName($toName[$key])) {
$to_name = $toName[$key];
}
}
$to_list->addTo($addr, base64_encode($to_name));
}
$to_plugin = $to[0];
$to = $to_list;
} else {
/* Simple recipient, one address */
$to_plugin = $to;
$to = new Swift_Address($to, base64_encode($toName));
}
try {
/* Connect with the appropriate configuration */
if ($configuration['TM_MAIL_METHOD'] == 2) {
if (empty($configuration['TM_MAIL_SERVER']) || empty($configuration['TM_MAIL_SMTP_PORT'])) {
Tools::dieOrLog(Tools::displayError('Error: invalid SMTP server or SMTP port'), $die);
return false;
}
$connection = new Swift_Connection_SMTP($configuration['TM_MAIL_SERVER'], $configuration['TM_MAIL_SMTP_PORT'], $configuration['TM_MAIL_SMTP_ENCRYPTION'] == 'ssl' ? Swift_Connection_SMTP::ENC_SSL : ($configuration['TM_MAIL_SMTP_ENCRYPTION'] == 'tls' ? Swift_Connection_SMTP::ENC_TLS : Swift_Connection_SMTP::ENC_OFF));
$connection->setTimeout(20);
if (!$connection) {
return false;
}
if (!empty($configuration['TM_MAIL_USER'])) {
$connection->setUsername($configuration['TM_MAIL_USER']);
}
if (!empty($configuration['TM_MAIL_PASSWD'])) {
$connection->setPassword($configuration['TM_MAIL_PASSWD']);
}
} else {
$connection = new Swift_Connection_NativeMail();
}
if (!$connection) {
return false;
}
$swift = new Swift($connection, Configuration::get('TM_MAIL_DOMAIN'));
// get templatePath
$templatePath = _TM_THEMES_DIR . 'mails/';
$templateHtml = file_get_contents($templatePath . $template . '.html');
/* Create mail && attach differents parts */
$message = new Swift_Message('[' . Configuration::get('TM_SHOP_NAME') . '] ' . $subject);
$templateVars['{shop_logo}'] = file_exists(_TM_IMG_DIR . 'logo_mail.jpg') ? $message->attach(new Swift_Message_Image(new Swift_File(_TM_IMG_DIR . 'logo_mail.jpg'))) : (file_exists(_TM_IMG_DIR . 'logo.jpg') ? $message->attach(new Swift_Message_Image(new Swift_File(_TM_IMG_DIR . 'logo.jpg'))) : '');
//.........这里部分代码省略.........
示例10: SendReport
public static function SendReport($subject, $fileAttachment = NULL)
{
$configuration = Configuration::getMultiple(array('PS_SHOP_EMAIL', 'PS_MAIL_METHOD', 'PS_MAIL_SERVER', 'PS_MAIL_USER', 'PS_MAIL_PASSWD', 'PS_SHOP_NAME', 'PS_MAIL_SMTP_ENCRYPTION', 'PS_MAIL_SMTP_PORT', 'PS_MAIL_METHOD', 'PS_MAIL_TYPE'));
if (!isset($configuration['PS_MAIL_SMTP_ENCRYPTION'])) {
$configuration['PS_MAIL_SMTP_ENCRYPTION'] = 'off';
}
if (!isset($configuration['PS_MAIL_SMTP_PORT'])) {
$configuration['PS_MAIL_SMTP_PORT'] = 'default';
}
$from = $configuration['PS_SHOP_EMAIL'];
//if (!isset($fromName)) $fromName = $configuration['PS_SHOP_NAME'];
$fromName = 'IndusDiva.com';
if (!empty($from) and !Validate::isEmail($from)) {
die(Tools::displayError('Error: parameter "from" is corrupted'));
}
if (!empty($fromName) and !Validate::isMailName($fromName)) {
die(Tools::displayError('Error: parameter "fromName" is corrupted'));
}
if (!Validate::isMailSubject($subject)) {
die(Tools::displayError('Error: invalid email subject'));
}
$to = array('venugopal.annamaneni@violetbag.com', 'rohit.modi@violetbag.com');
/* Construct multiple recipients list if needed */
if (is_array($to)) {
$to_list = new Swift_RecipientList();
foreach ($to as $addr) {
$addr = trim($addr);
if (!Validate::isEmail($addr)) {
die(Tools::displayError('Error: invalid email address'));
}
$to_list->addTo($addr, null);
}
$to = $to_list;
}
try {
/* Connect with the appropriate configuration */
if ($configuration['PS_MAIL_METHOD'] == 2) {
if (empty($configuration['PS_MAIL_SERVER']) or empty($configuration['PS_MAIL_SMTP_PORT'])) {
die(Tools::displayError('Error: invalid SMTP server or SMTP port'));
}
$connection = new Swift_Connection_SMTP($configuration['PS_MAIL_SERVER'], $configuration['PS_MAIL_SMTP_PORT'], $configuration['PS_MAIL_SMTP_ENCRYPTION'] == "ssl" ? Swift_Connection_SMTP::ENC_SSL : ($configuration['PS_MAIL_SMTP_ENCRYPTION'] == "tls" ? Swift_Connection_SMTP::ENC_TLS : Swift_Connection_SMTP::ENC_OFF));
$connection->setTimeout(4);
if (!$connection) {
return false;
}
if (!empty($configuration['PS_MAIL_USER'])) {
$connection->setUsername($configuration['PS_MAIL_USER']);
}
if (!empty($configuration['PS_MAIL_PASSWD'])) {
$connection->setPassword($configuration['PS_MAIL_PASSWD']);
}
} else {
$connection = new Swift_Connection_NativeMail();
}
if (!$connection) {
return false;
}
$swift = new Swift($connection, Configuration::get('PS_MAIL_DOMAIN'));
/* Create mail and attach differents parts */
//$message = new Swift_Message('['.Configuration::get('PS_SHOP_NAME').'] '. $subject);
$message = new Swift_Message($subject);
if ($fileAttachment and isset($fileAttachment['content']) and isset($fileAttachment['name']) and isset($fileAttachment['mime'])) {
$message->attach(new Swift_Message_Attachment($fileAttachment['content'], $fileAttachment['name'], $fileAttachment['mime']));
}
/* Send mail */
$send = $swift->send($message, $to, new Swift_Address($from, $fromName));
$swift->disconnect();
return $send;
} catch (Swift_ConnectionException $e) {
return false;
}
}