Post Top Ad

Your Ad Spot

miércoles, 26 de agosto de 2020

Bloqueo de correos electrónicos no deseados en PrestaShop

¡Empecemos! Cree un nuevo archivo php en la carpeta override / controllers / front y asígnele el nombre: ContactController.php y agregue lo siguiente dentro de las etiquetas php:
1
2
3
class ContactController extends ContactControllerCore
{
}
Necesitamos engancharnos en el método postProcess, así que ampliémoslo:
1
2
3
4
5
6
public function postProcess()
{
    if(Tools::isSubmit('submitMessage'))
    {
    }
}
Queremos guardar el mensaje enviado en una variable primero, y luego en el correo electrónico:
1
2
$message = Tools::getValue('message');
$from = trim(Tools::getValue('from'))
Ahora, para mantener las cosas ordenadas, crearemos dos nuevas matrices, una contendrá la lista de cadenas para prohibir los correos electrónicos y la otra, las que prohibirá el contenido:
1
2
$banned_in_email = ['.ru', 'qq.com', '.vn'];
$banned_content = ['email marketing'];
Nota: asegúrese de utilizar cadenas que estén relacionadas con el spam que está recibiendo. Recibo spam de dominios .ru, qq.com y .vn, así que eso es lo que estoy bloqueando. También recibo muchos correos electrónicos que contienen "marketing por correo electrónico" en el texto, y es poco probable que obtenga algo real con ese tipo de contenido. ¡Asegúrese de no prohibir a los clientes reales!qq com y .vn, así que eso es lo que estoy bloqueando. También recibo muchos correos electrónicos que contienen "marketing por correo electrónico" en el texto, y es poco probable que obtenga algo real con ese tipo de contenido.
Queremos recorrer ambos y generar un error si algo está contenido en las variables enviadas:
1
2
3
4
5
6
7
8
foreach ($banned_in_email as $string) {
    if(strstr($from, $string))
        $this->errors[] = Tools::displayError('This email address is not allowed');
}
foreach ($banned_content as $string) {
    if(strstr($message, $string))
        $this->errors[] = Tools::displayError('Invalid content');
}
Y eso es básicamente todo, solo necesitamos llamar al padre al final del método:
padre :: postProcess ();
¡Y hemos terminado! Aquí está la anulación completa:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
class ContactController extends ContactControllerCore
{
    public function postProcess()
    {
        if(Tools::isSubmit('submitMessage')) {
 
            $message = Tools::getValue('message');
            $from = Tools::getValue('from');
 
            $banned_in_email = ['.ru', 'qq.com', '.vn'];
            $banned_content = ['email marketing'];
 
            foreach ($banned_in_email as $string) {
                if(strstr($from, $string))
                    $this->errors[] = Tools::displayError('This email address is not allowed');
            }
 
            foreach ($banned_content as $string) {
                if(strstr($message, $string))
                    $this->errors[] = Tools::displayError('Invalid Content');
            }
        }
        parent::postProcess();
    }
}
Antes de probar, asegúrese de borrar cache / class_index.php, para que la nueva anulación se cargue en el sistema.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas