Files
2021-09-17 12:41:45 +02:00

81 lines
2.3 KiB
PHP

<?php
class App_Service_Emails
{
const EMAIL_TEMPLATE_PATH = APPLICATION_PATH . "/../emailtemplate/";
protected $_configs;
protected $_ipManager;
protected $_genericModel;
public function __construct()
{
$this->_configs = Zend_Registry::get('config');
$this->_ipManager = new App_Service_IpManager();
$this->_genericModel = new Application_Model_Generic();
}
public function sendEmailByTemplateHtml($email, $oggetto, $templateName, $params = array(), $nomeMittente = null, $filename = null)
{
$mail = new App_Model_Mail('UTF-8');
$templateFileName = self::EMAIL_TEMPLATE_PATH.$templateName;
if(!file_exists($templateFileName)){
throw new Exception("Email template non trovato impossibile inviare l'email");
}
$testoEmail = file_get_contents($templateFileName);
$params = $this->preparaDatiPerSostituzione($params);
if (count($params) > 0) {
foreach ($params as $key => $val) {
$oggetto = str_replace($key, $val, $oggetto);
$testoEmail = str_replace($key, $val, $testoEmail);
}
}
if ($filename != null) {
if (file_exists($filename))
$mail->createAttachment(file_get_contents($filename), 'application/pdf', Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, $filename);
}
$nomeMittente = ($nomeMittente) ? $nomeMittente : $this->_configs->get('email_mittente_nome');
$mail->setFrom('noreply@fatturab2b.net', $nomeMittente)->setSubject($oggetto);
$mail->setBodyHtml($testoEmail);
//Inserisco il o i destinatari/o
if (is_string($email)) {
$mail->addTo($email, $email);
} else if (is_array($email)) {
foreach ($email as $val) {
$mail->addTo($val);
}
}
$mail->send();
}
/**
* Questa funzione presi i parametri passati nell array ne aggiunge i simboli
* percentuale per farli riconoscere popi nel testo e sostituirli
* @param $dati
* @return array
*/
private function preparaDatiPerSostituzione($dati){
$newParams = array();
foreach($dati as $key => $val){
$newParams['%'.$key.'%'] = $val;
}
return $newParams;
}
}