hestia:correu
Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Següent revisió | Revisió prèvia | ||
| hestia:correu [2024/12/18 22:28] – creat 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%> | ||
| - | | + | Hestia > Mail > Símbol " |
| + | {{: | ||
| </ | </ | ||
| + | I ens preguntarà les dades bàsiques: | ||
| + | * nom del compte | ||
| + | * Paraula de pas. | ||
| + | * A les opcions avançades podem posar alguns límits o reenviaments. | ||
| + | * Adreça on enviar les credencials | ||
| + | |||
| + | En tot moment, a la dreta, ens mostra tota la informació del compte que estem creant, però si posem un correu, aleshores tindrem tota aquesta informació al nostre correu per poder consultar després (o per compartir) tranquil·lament. | ||
| + | |||
| + | ===== Enviant correu des de PHP ===== | ||
| + | Una de les llibreries típiques és PHPMailer. | ||
| + | |||
| + | Per poder-la fer servir al labs hem de desactivar la verificació dels certificats de la següent forma | ||
| + | <code php> | ||
| + | try { | ||
| + | $mail = new PHPMailer(true) | ||
| + | $mail-> | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ) | ||
| + | ); | ||
| + | $mail-> | ||
| + | $mail-> | ||
| + | $mail..... | ||
| + | ... | ||
| + | </ | ||
| + | I per depurar: | ||
| + | <code php> | ||
| + | $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.1734560932.txt.gz · Darrera modificació: 2024/12/18 22:28 per ebota
