hestia:correu
Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèviaRevisió prèviaSegüent revisió | Revisió prèvia | ||
| hestia:correu [2024/12/18 23:38] – [Creació d'un compte de correu] ebota | hestia:correu [2025/01/09 18:45] (actual) – canviat títol ebota | ||
|---|---|---|---|
| Línia 5: | Línia 5: | ||
| Protocol d' | Protocol d' | ||
| Protocol bàsic de recollida de correus: POP\\ | Protocol bàsic de recollida de correus: POP\\ | ||
| - | Protocol avançat de recollida de correus: | + | Protocol avançat de recollida de correus: |
| </ | </ | ||
| - | I també són interessats de conèixer els conceptes de MTA, MTX... Però per fer una aplicació que envia i rep correus no són del tot necessàris | + | I també són interessats de conèixer els conceptes de MTA, MTX... Però per fer una aplicació que envia i rep correus no són del tot necessaris |
| - | ===== Creació d'un compte de correu ===== | + | ===== Habilitar el correu |
| Des del panell de Hestia, quan es crea un [[hestia: | Des del panell de Hestia, quan es crea un [[hestia: | ||
| Ara bé, si no s'ha creat el domini del correu, es pot crear a posteriori. | Ara bé, si no s'ha creat el domini del correu, es pot crear a posteriori. | ||
| Hestia -> Mail -> Add Mail Domain | Hestia -> Mail -> Add Mail Domain | ||
| - | Una vegada creat podem crear comptes de correu segons les necessitats del projecte (el número | + | Una vegada creat podem crear comptes de correu segons les necessitats del projecte (el nombre |
| ===== Creació d'un compte de correu ===== | ===== Creació d'un compte de correu ===== | ||
| <WRAP center round info 60%> | <WRAP center round info 60%> | ||
| Línia 51: | Línia 51: | ||
| $mail-> | $mail-> | ||
| </ | </ | ||
| + | |||
| + | ==== Exemple complet ==== | ||
| + | <code php config.php> | ||
| + | <?php | ||
| + | /* Fitxer de configuració: | ||
| + | |||
| + | return [ | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ]; | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | El codi PHP té diverses parts | ||
| + | - OPCIONAL. Activar la depuració | ||
| + | - Preparació de l' | ||
| + | - Recepció dels paràmetres del formulari | ||
| + | - Si hem rebut els paràmetres, | ||
| + | - Si no, no fem res. | ||
| + | - Si error en el mail fa un echo "a sac" del missatge. Per fer-ho bé, el missatge estaria dins d'un div i s' | ||
| + | - Al final, sempre, mostra els camps del formulari | ||
| + | </ | ||
| + | |||
| + | |||
| + | <code php index.php> | ||
| + | <?php | ||
| + | |||
| + | /** | ||
| + | * Exemple de fitxer config.php: | ||
| + | * <?php | ||
| + | * return [ | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * ]; | ||
| + | */ | ||
| + | |||
| + | // Incloem la biblioteca PHPMailer | ||
| + | use PHPMailer\PHPMailer\PHPMailer; | ||
| + | use PHPMailer\PHPMailer\Exception; | ||
| + | |||
| + | require ' | ||
| + | |||
| + | // Incloem el fitxer de configuració | ||
| + | $config = require ' | ||
| + | |||
| + | // Funció per enviar un correu electrònic | ||
| + | function enviarCorreu(string $destinatari, | ||
| + | { | ||
| + | global $config; | ||
| + | |||
| + | try { | ||
| + | $mail = new PHPMailer(true); | ||
| + | | ||
| + | //activem el debug al màxim per veure tots els errors | ||
| + | ini_set(' | ||
| + | ini_set(' | ||
| + | error_reporting(E_ALL); | ||
| + | // Opcions de depuració | ||
| + | $mail-> | ||
| + | $mail-> | ||
| + | | ||
| + | //**El servidor té un problema amb els certificats i hem de deshabilitar un nivell de seguretat. | ||
| + | //En un entorn real NO S' | ||
| + | //del servidor** | ||
| + | $mail-> | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ) | ||
| + | ); | ||
| + | |||
| + | // Configuració del servidor SMTP | ||
| + | $mail-> | ||
| + | $mail-> | ||
| + | $mail-> | ||
| + | $mail-> | ||
| + | $mail-> | ||
| + | #º $mail-> | ||
| + | $mail-> | ||
| + | |||
| + | $mail-> | ||
| + | |||
| + | // Configuració del remitent i destinatari | ||
| + | $mail-> | ||
| + | $mail-> | ||
| + | |||
| + | // Contingut del correu | ||
| + | $mail-> | ||
| + | $mail-> | ||
| + | $mail-> | ||
| + | |||
| + | // Mostrar informació del servidor per consola | ||
| + | error_log(" | ||
| + | error_log(" | ||
| + | error_log(" | ||
| + | error_log(" | ||
| + | error_log(" | ||
| + | // Enviem el correu | ||
| + | $mail-> | ||
| + | return true; | ||
| + | } catch (Exception $e) { | ||
| + | error_log(" | ||
| + | return false; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // Processar el formulari | ||
| + | if ($_SERVER[' | ||
| + | // Sanejament de les dades del formulari | ||
| + | $destinatari = filter_input(INPUT_POST, | ||
| + | $assumpte = filter_input(INPUT_POST, | ||
| + | $missatge = filter_input(INPUT_POST, | ||
| + | |||
| + | if ($destinatari && $assumpte && $missatge) { | ||
| + | if (enviarCorreu($destinatari, | ||
| + | echo "El correu s'ha enviat correctament."; | ||
| + | } else { | ||
| + | echo "Hi ha hagut un error en enviar el correu."; | ||
| + | } | ||
| + | } else { | ||
| + | echo "Si us plau, ompliu tots els camps correctament."; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | ?> | ||
| + | <!-- Fins aquí el PHP --> | ||
| + | <!-- Formulari HTML --> | ||
| + | < | ||
| + | <html lang=" | ||
| + | < | ||
| + | <meta charset=" | ||
| + | <meta name=" | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | <form method=" | ||
| + | <label for=" | ||
| + | <input type=" | ||
| + | <br> | ||
| + | <label for=" | ||
| + | <input type=" | ||
| + | <br> | ||
| + | <label for=" | ||
| + | < | ||
| + | |||
| + | <button type=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
/home/admin/web/eines.inspedralbes.cat/public_html/dokuwiki/data/attic/hestia/correu.1734565087.txt.gz · Darrera modificació: 2024/12/18 23:38 per ebota
