Para un proyecto B2E, necesitamos una manera para una tienda de Magento 1.9.x para definir, que el correo a un dominio particular (por ejemplo. @ keinemails.com) no debe ser enviado.
Como nos SMTP-Pro-Extensión tienen de ASchroder en uso, Se le permite adaptarse cerca de este, para obtener el resultado deseado.
En el primer paso que damos la aplicación / código / / Aschroder / SMTPPro / modelo / Email / template.php locales
A continuación añadimos antes
/** * Enviar correo a destinatario
y detrás
Aschroder_SMTPPro_Model_Email_Template clase extiende Mage_Core_Model_Email_Template {
folgenden Code ein
protected $ _avoidedDomains = array('Keinemails.com', 'Auchkeinemails.com'); protegida isPreventForDomain función($e-mail, $dominios) { foreach ($dominios como $ dominio) { $Pos = strpos($e-mail, $dominio, strlen($e-mail) - strlen($dominio)); si ($pos === falsa) continuar; si ($pos == 0 || $e-mail[(int) $POS - 1] == "@" || $e-mail[(int) $POS - 1] == ".") return true; } return false; }
más atrás
función pública envío($e-mail, $nombrar = null, las variables array $ = array()) {
y antes
$_helper = Mago::ayudante('Smtppro');
este código
$correos electrónicos = array_values((formación)$e-mail); $= sentEmails matriz();
por último,
$_helper = Mago::ayudante('Smtppro');
sin embargo, este código
foreach($mensajes de correo electrónico como $ emailValue){ si($esta->isPreventForDomain($valor de correo electrónico, $esta->_avoidedDomains)){ Mago::log(sprintf("No enviamos correo electrónico a% s", $valor de correo electrónico), falso, 'Not_sent_email.log', verdadero); continuar; } $sentEmails[] = $ Valor de correo electrónico; } si(contar($sentEmails) == 0) return false; $correos electrónicos = $ sentEmails;
Tan, que todos juntos tenemos la siguiente
Aschroder_SMTPPro_Model_Email_Template clase extiende Mage_Core_Model_Email_Template { protected $ _avoidedDomains = array('Keinemails.com', 'Auchkeinemails.com'); protegida isPreventForDomain función($e-mail, $dominios) { foreach ($dominios como $ dominio) { $Pos = strpos($e-mail, $dominio, strlen($e-mail) - strlen($dominio)); si ($pos === falsa) continuar; si ($pos == 0 || $e-mail[(int) $POS - 1] == "@" || $e-mail[(int) $POS - 1] == ".") return true; } return false; } /** * Enviar correo a destinatario * * array @param|$ cadena de correo electrónico E-mail(s) * array @param|cadena|$ Nula nombre nombre del receptor(s) * variables de plantilla variables de array $ @param * booleano @return **/ función pública envío($e-mail, $nombrar = null, las variables array $ = array()) { $correos electrónicos = array_values((formación)$e-mail); $= sentEmails matriz(); $_helper = Mago::ayudante('Smtppro'); foreach($mensajes de correo electrónico como $ emailValue){ si($esta->isPreventForDomain($valor de correo electrónico, $esta->_avoidedDomains)){ Mago::log(sprintf("No enviamos correo electrónico a% s", $valor de correo electrónico), falso, 'Not_sent_email.log', verdadero); continuar; } $sentEmails[] = $ Valor de correo electrónico; } si(contar($sentEmails) == 0) return false; $correos electrónicos = $ sentEmails; // Si no está habilitado, simplemente devolver el resultado de los padres. si (!$_ayudante->está habilitado()) { $_ayudante->log('SMTP Pro no está habilitado, caer de nuevo a la clase padre); volver padres::enviar($e-mail, $nombre, $las variables); } // Según la clase padre - Salvo Además de antes y después de los eventos de envío
En nuestro caso, hemos definido dos dominios. Esto puede, por supuesto, sólo sea una.
Creamos esta manera un archivo de registro (/var / log / not_sent_email.log) – Aquí se puede ver qué direcciones de correo electrónico fueron rechazados cuando.
Se utiliza en la versión de Magento 1.9 Comentarios? Adiciones? Notas? Con alegría!