Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:hypathie:tutos:php-envoi-de-mails [28/12/2020 18:23] Hypathie [Installation et paramétrage de msmtp] |
utilisateurs:hypathie:tutos:php-envoi-de-mails [28/12/2020 20:58] (Version actuelle) Hypathie [postfix] |
||
---|---|---|---|
Ligne 29: | Ligne 29: | ||
<code root>apt install msmtp msmtp-mta</code> | <code root>apt install msmtp msmtp-mta</code> | ||
- | * On édite le fichier de configuration de msmtp ''/etc/msmtprc'' pour se servir du serveur SMTP de gmail | + | * On édite le fichier de configuration de msmtp ''/etc/msmtprc'' pour se servir du serveur SMTP de son fournisseur de domaine, par exemple gandi. |
Ligne 42: | Ligne 42: | ||
port 587 | port 587 | ||
user application@comgocom.pw | user application@comgocom.pw | ||
- | password mot-de-passe-de-l'adresse-gmail-créée-pour-le-site | + | password mot-de-passe-de-l'adresse-mail-gandi-associée-au-nom-de-domaine-du-site-web |
logfile /var/log/msmtp | logfile /var/log/msmtp | ||
tls on | tls on | ||
Ligne 48: | Ligne 48: | ||
tls_trust_file /etc/ssl/certs/ca-certificates.crt | tls_trust_file /etc/ssl/certs/ca-certificates.crt | ||
</code> | </code> | ||
+ | |||
+ | <note tip> | ||
+ | * **host mail.gandi.net** : c'est le mail DNS de gandi | ||
+ | nom de domain -> boite mail et redirection -> clic sur le mail associé | ||
+ | |||
+ | {{/file-Ra65c4054ffec4f80293c45833e900837.png}} | ||
+ | |||
+ | * **user application@comgocom.pw** : c'est le nom de la messagerie associée au domaine servant pour le site web | ||
+ | |||
+ | {{/file-R1e8ae758462487d12172eaf18416fb7c.png}} | ||
+ | |||
+ | * **from admin@comgocom.pw** : c'est l'alias de l'adresse nom de la messagerie associée au domaine servant pour le site web | ||
+ | * **tls_trust_file /etc/ssl/certs/ca-certificates.crt** : si aucun certificat se trouve à ce chemin, tout fonctionne malgré cela. | ||
+ | </note> | ||
* On édite le fichier php.ini d'apache pour utiliser cette configuration lors de l'utilisation de la fonction php mail() | * On édite le fichier php.ini d'apache pour utiliser cette configuration lors de l'utilisation de la fonction php mail() | ||
Ligne 101: | Ligne 115: | ||
<code>sendmail_path = /usr/bin/msmtp -t</code> | <code>sendmail_path = /usr/bin/msmtp -t</code> | ||
- | ===== Installation de postfix ===== | ||
- | ===== Utilisation ===== | + | ====Paramétrage du DNS de son fournisseur de domaine==== |
+ | |||
+ | |||
+ | {{/file-Rf3eb4cff75e262bf85cde75ebcb2938d.png}} | ||
+ | |||
+ | <note tip> | ||
+ | Dans cet exemple, à partir de la configuration DNS par défaut qui correspond au nom de domaine comgocom.pw : | ||
+ | |||
+ | * Les champs de **type A** permettent de rejoindre une box machin_chose_1 d'ip 78.115.221.146 ou la box machin_chose_2 qui sont paramétrées pour rediriger le port 80 vers une machine sur laquelle tourne apache2 et qui possède le code source du site. | ||
+ | * Le dernier champ **CNAME** a été ajouté pour créer un alias www.comgocom.pw qui pointe sur comgocom.pw | ||
+ | </note> | ||
+ | |||
+ | ====Autres configurations pour l'envoi de mail en PHP depuis le site ==== | ||
+ | |||
+ | * ''/etc/hosts'' | ||
+ | <code user>more /etc/hosts | ||
+ | </code> | ||
+ | <code> | ||
+ | 127.0.0.1 localhost | ||
+ | 127.0.1.1 Eve | ||
+ | 192.168.0.18 db | ||
+ | 192.168.0.18 comgocom.pw | ||
+ | 192.168.1.80 comgocom.pw | ||
+ | |||
+ | # The following lines are desirable for IPv6 capable hosts | ||
+ | ::1 localhost ip6-localhost ip6-loopback | ||
+ | ff02::1 ip6-allnodes | ||
+ | ff02::2 ip6-allrouters | ||
+ | |||
+ | </code> | ||
+ | |||
+ | <note tip> | ||
+ | * 192.168.0.18 comgocom.pw : c'est l'ip fixée à cette adresse au niveau du routeur de la box_machin_1 sur laquelle est redirigé le port 80 | ||
+ | * 192.168.1.80 comgocom.pw : c'est l'ip fixée à cette adresse au niveau du routeur de la box_machin_2 ... | ||
+ | </note> | ||
+ | ===== postfix ===== | ||
+ | Il faut aller sur le compte de son fournisseur d'accès internet et rediriger le port 25 sur l'ip fixe de la machine où est installé postfix. | ||
+ | |||
+ | Il faut décocher la case "Autoriser l'envoi de courriels..." pour émettre depuis postfix | ||
+ | |||
+ | {{/file-R93ee758276b492f717878ce95dc0878c.png}} | ||
+ | |||
+ | ====Installations et configurations ==== | ||
+ | * Pour utiliser le client mail en ligne de commande | ||
+ | <code root>apt install mailutils</code> | ||
+ | * Pour utiliser la commande dig (info sur dns reverse) | ||
+ | <code root>apt install dnsutils</code> | ||
+ | * Pour créer des clés d'authentification dns | ||
+ | <code root>apt-get install opendkim opendkim-tools</code> | ||
+ | |||
+ | <code root>apt install postfix</code> | ||
+ | |||
+ | <note> | ||
+ | Lors de l'installation de postfix répondre : | ||
+ | |||
+ | * Site internet | ||
+ | * Nom du domaine des adresses mails, ici comgocom.pw | ||
+ | </note> | ||
+ | |||
+ | ===Configuration de postfix /etc/postfix/main.cf === | ||
+ | |||
+ | <code root>kate /etc/postfix/main.cf</code> | ||
+ | |||
+ | <code> | ||
+ | # See /usr/share/postfix/main.cf.dist for a commented, more complete version | ||
+ | |||
+ | |||
+ | # Debian specific: Specifying a file name will cause the first | ||
+ | # line of that file to be used as the name. The Debian default | ||
+ | # is /etc/mailname. | ||
+ | #myorigin = /etc/mailname | ||
+ | |||
+ | smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) | ||
+ | biff = no | ||
+ | |||
+ | # appending .domain is the MUA's job. | ||
+ | append_dot_mydomain = no | ||
+ | |||
+ | # Uncomment the next line to generate "delayed mail" warnings | ||
+ | #delay_warning_time = 4h | ||
+ | |||
+ | readme_directory = no | ||
+ | |||
+ | # See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on | ||
+ | # fresh installs. | ||
+ | compatibility_level = 2 | ||
+ | |||
+ | |||
+ | |||
+ | # TLS parameters | ||
+ | smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem | ||
+ | smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key | ||
+ | smtpd_use_tls=yes | ||
+ | smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache | ||
+ | smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache | ||
+ | |||
+ | # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for | ||
+ | # information on enabling SSL in the smtp client. | ||
+ | |||
+ | smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination | ||
+ | myhostname = comgocom.pw | ||
+ | alias_maps = hash:/etc/aliases | ||
+ | alias_database = hash:/etc/aliases | ||
+ | #myorigin = /etc/mailname | ||
+ | mydestination = $myhostname, comgocom.pw, Eve, localhost.$mydomain, $mydomain | ||
+ | relayhost = | ||
+ | mynetworks = 127.0.0.0/8 192.168.1.0/24 192.168.0.0/24 [::ffff:127.0.0.0]/104 [::1]/128 | ||
+ | mailbox_size_limit = 0 | ||
+ | recipient_delimiter = + | ||
+ | inet_interfaces = all | ||
+ | inet_protocols = all | ||
+ | </code> | ||
+ | |||
+ | <code root>kate /etc/hosts</code> | ||
+ | |||
+ | <code>127.0.0.1 localhost | ||
+ | 127.0.1.1 Eve | ||
+ | 192.168.0.18 db | ||
+ | 192.168.0.18 comgocom.pw mail.comgocom.pw | ||
+ | 192.168.1.80 comgocom.pw mail.comgocom.pw | ||
+ | |||
+ | # The following lines are desirable for IPv6 capable hosts | ||
+ | ::1 localhost ip6-localhost ip6-loopback | ||
+ | ff02::1 ip6-allnodes | ||
+ | ff02::2 ip6-allrouters | ||
+ | </code> | ||
+ | * Pour changer le nom de la machine par le nom de domaine, pour que le mail envoyé le soit ...@domain au lieu de ...@hostname | ||
+ | <code root>hostnamectl set-hostname comgocom.pw | ||
+ | </code> | ||
+ | |||
+ | <code root>kate /etc/aliases</code> | ||
+ | |||
+ | <code># /etc/aliases | ||
+ | mailer-daemon: postmaster | ||
+ | postmaster: root | ||
+ | nobody: root | ||
+ | hostmaster: root | ||
+ | usenet: root | ||
+ | news: root | ||
+ | webmaster: root | ||
+ | www: root | ||
+ | ftp: root | ||
+ | abuse: root | ||
+ | noc: root | ||
+ | security: root | ||
+ | root: nathalie | ||
+ | admin: nathalie | ||
+ | </code> | ||
+ | * Pour régénérer le fichier aliases.db | ||
+ | <code root>newaliases </code> | ||
+ | |||
+ | ===Configuration de OpenDKIM === | ||
+ | |||
+ | <code root>kate /etc/opendkim.conf</code> | ||
+ | * On modifie la ligne commençant par Socket pour mettre ceci : | ||
+ | <code> | ||
+ | Socket inet:12301@localhost | ||
+ | </code> | ||
+ | * Connexion du mail avec Postfix: | ||
+ | <code root>kate /etc/default/opendkim</code> | ||
+ | |||
+ | <code>SOCKET="inet:12301@localhost"</code> | ||
+ | |||
+ | * Configurer postfix pour qu'il utilise le mail : | ||
+ | |||
+ | <code root>kate /etc/postfix/main.cf</code> | ||
+ | On ajoute les deux lignes suivantes : | ||
+ | <code>milter_protocol = 2 | ||
+ | milter_default_action = accept | ||
+ | </code> | ||
+ | |||
+ | <code root>systemctl restart postfix</code> | ||
+ | |||
+ | * créer les dossiers pour ranger les clés : | ||
+ | |||
+ | <code root>mkdir /etc/opendkim && mkdir /etc/opendkim/keys</code> | ||
+ | * Le fichier définissant les hosts de confiance | ||
+ | <code root>kate /etc/opendkim/TrustedHosts</code> | ||
+ | <code>127.0.0.1 | ||
+ | localhost | ||
+ | 192.168.0.1/24 | ||
+ | 192.168.1.1/24 | ||
+ | |||
+ | *.comgocom.pw | ||
+ | </code> | ||
+ | |||
+ | * créer les tables des clés : | ||
+ | <code root>kate /etc/opendkim/KeyTable</code> | ||
+ | <code>mail._domainkey.comgocom.pw comgocom.pw:mail:/etc/opendkim/keys/comgocom.pw/mail.private</code> | ||
+ | |||
+ | * Déclarer les adresses mails qui correspondent aux clés : | ||
+ | <code root>kate /etc/opendkim/SigningTable</code> | ||
+ | <code>*@comgocom.pw mail._domainkey.comgocom.pw</code> | ||
+ | * Générer les clés : | ||
+ | <code root>cd /etc/opendkim/keys</code> | ||
+ | |||
+ | <code root>mkdir comgocom.pw</code> | ||
+ | |||
+ | <code root>cd comgocom.pw</code> | ||
+ | <code root>opendkim-genkey -s mail -d comgocom.pw</code> | ||
+ | <code root>chown opendkim:opendkim mail.private</code> | ||
+ | * Prendre le contenu de /etc/opendkim/keys/comgocom.pw/mail.txt pour mettre dans le DNS de gandi, ajout d'un ''TXT'' | ||
+ | <code root>more /etc/opendkim/keys/comgocom.pw/mail.txt</code> | ||
+ | <code>mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; " | ||
+ | "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0+srrYaYVjb47PPRNKnmw9SpDaLyZDyF74g2xhfbo+Hg0OeOSGiTLVb9YBMQnWrAcWHroUDJr6lSjDpQ/A4aON+XAdyHGmdaC/idLYLkIIwDxoLQBGJrfjfhf+pVaQj3sWI0 | ||
+ | IiTIOltzyiIK4k7yNlaZqcpfOp2i2bP0adcfPyRFdqcWKob0bHStk2OFGRTq8C9YxhdatHM1yW" | ||
+ | "YmeWelo1xH99D79XAjt59CAyf3QiLcI8cfzTkD/846VKPr2ooObP5mMIpOTqO74euIRSRrtYktTDYlbxbGLfb3q7gdObSfLP18b0blneCE2Osd3Q0E1KW98d80ESEmZJRyyhI0TwIDAQAB" ) ; ----- DKIM key mail for comgo | ||
+ | com.pw | ||
+ | </code> | ||
+ | {{/file-R188f0780312575b65eeff6e7d8de2662.png}} | ||
+ | |||
+ | <code root>service postfix restart</code> | ||
+ | |||
+ | <code root>service opendkim restart</code> | ||
+ | ===Autres commandes utiles=== | ||
+ | * Logs | ||
+ | <code root>tail /var/log/mail.info</code> | ||
+ | |||
+ | <code root>ls -lrt /var/log</code> | ||