IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Serveur d'envoi d'emails depuis mon site


Sujet :

Administration système

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut Serveur d'envoi d'emails depuis mon site
    Bonjour,

    Je travaille actuellement sur la création d'un site web qui devrait attirer beaucoup d'utilisateurs. Pour communiquer les informations aux utilisateurs depuis le site je vais utiliser l'envoi d'emails sur leur boîte personnelle (je n'héberge pas leur compte email).

    Sur mon site de test j'utilise le smtp de gmail pour ce faire.
    Le trafic futur de ce site ne me permet pas de garder cette option car il va falloir envoyer des milliers de mails par jour rapidement.

    Je n'ai jamais configuré de serveur de mails donc je patauge un peu.
    Mon besoin est dans un seul sens (je n'ai pas besoin de recevoir des emails sur mon site depuis l'extérieur):
    site -> compte email perso utilisateur.

    Seul le compte utilisateur de mon serveur web sera autorisé à envoyer des emails depuis le serveur SMTP (qui sera sur la même machine dédiée que Apache, PHP et PostGreSQL a priori). Tous les emails entrants seront filtrés/détruits.

    Etant donné mon cahier des charges que me conseilleriez vous?
    Est-ce qu'il est possible de n'avoir qu'un serveur SMTP, de le sécuriser en autorisant uniquement le compte du site web à envoyer des emails et de filtrer/détruire tous les emails entrants? (réponses non désirées des utilisateurs du site)

    Si jamais quelque chose n'est pas clair n'hésitez pas à me demander des précisions.

    Merci d'avance pour votre aide,
    Mages

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 431
    Points : 43 057
    Points
    43 057
    Par défaut
    Si tu es sur un serveur dédié, tu installes postfix et tu mets uniquement localhost autorisé à envoyer des mails.
    Si tu es sur un mutualisé la commande "mail" de php fonctionne en général, par contre, tu as des limitations pour éviter le spam. Si ton site ne passe pas son temps à envoyer des mails ça fonctionne.

    Pour répondre à ta question : tu peux mettre un serveur smtp sans serveur pop/imap, tu peux le sécuriser comme tu le veux.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse.

    J'imagine qu'en mutualisé la commande mail de PHP communique directement avec le serveur SMTP de la machine sur le port 25 si c'est autorisé.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Bon j'ai un peu avancé mais ça ne fonctionne pas. J'ouvrirai peut-être un autre post si je n'ai pas de réponse ici.

    Je teste ma configuration pour l'instant sur un serveur dédié qui est stocké chez moi (sur une Debian wheezy). Je suis chez Free donc la machine est derrière un routeur. J'utilise pour l'instant un smarthost plutôt que d'avoir mon propre serveur SMTP complet. J'utilise celui de gmail à travers exim4.

    J'ai bien reconfiguré mon firewall pour autoriser le trafic sur le port 25 mais pourtant mon mail ne passe jamais (je n'ai rien dans ma boîte aux lettres électronique)

    /etc/exim4/passwd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    gmail-smtp-msa.l.google.com:user@gmail.com:passwd
    gmail-smtp.l.google.com:user@gmail.com:passwd
    *.google.com:user@gmail.com:passwd

    Firewall pour le mail sur port 25
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    # Mail SMTP:25
    iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
    /etc/exim4/update-exim4.conf.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dc_eximconfig_configtype='smarthost'
    dc_other_hostnames=''
    dc_local_interfaces='127.0.0.1 ; ::1'
    dc_readhost=''
    dc_relay_domains=''
    dc_minimaldns='false'
    dc_relay_nets=''
    dc_smarthost='smtp.gmail.com::587'
    CFILEMODE='644'
    dc_use_split_config='false'
    dc_hide_mailname='true'
    dc_mailname_in_oh='true'
    dc_localdelivery='mail_spool'
    Je lance la commande suivante pour envoyer un mail:
    >mail -s "sujet du mail" root
    toto.
    .

    Dans /var/log/exim4/mainlog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    2014-02-12 19:09:02 1WDeF4-0000hw-1k <= user@gmail.com U=root P=local S=1198
    2014-02-12 19:09:02 1WDeF4-0000hw-1k => unixuser <root@monserveur> R=local_user T=mail_spool
    2014-02-12 19:09:02 1WDeF4-0000hw-1k Completed
    2014-02-12 19:15:19 Start queue run: pid=2737
    2014-02-12 19:15:19 1WDd4j-0001c2-5r gmail-smtp-msa.l.google.com [2a00:1450:400c:c03::6d] Network is unreachable
    2014-02-12 19:16:23 1WDd4j-0001c2-5r gmail-smtp-msa.l.google.com [173.194.66.108] Connection timed out
    2014-02-12 19:17:26 1WDd4j-0001c2-5r gmail-smtp-msa.l.google.com [173.194.66.109] Connection timed out
    2014-02-12 19:17:26 1WDd4j-0001c2-5r == user@gmail.com R=smarthost T=remote_smtp_smarthost defer (110): Connection timed out
    2014-02-12 19:17:26 1WDZnU-00016J-Tc == user@gmail.com R=smarthost T=remote_smtp_smarthost defer (-53): retry time not reached for any host
    2014-02-12 19:17:26 1WDZmk-00016C-CO == user@gmail.com R=smarthost T=remote_smtp_smarthost defer (-53): retry time not reached for any host
    2014-02-12 19:17:26 End queue run: pid=2737
    Je ne sais pas trop comment interpréter cela. Est-ce que j'ai oublié quelque chose? J'ai pensé que peut-être ma box empêchait la connexion au port 25 d'une machine distante mais j'aurais plutôt tendance à dire qu'elle empêche les connexions entrantes mais pas sortantes.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Ici: http://www.isalo.org/wiki.debian-fr/...l_avec_Postfix

    il est spécifié: "Si votre serveur se trouve derrière une *box, il ne pourra pas communiquer avec le monde extérieur. Il nous faut ouvrir des ports." Mais il n'est pas précisé si c'est pour les connexions entrantes ou sortantes.
    Je n'ai aucun problème pour envoyer un mail vers le smtp gmail en passant par mon PC sous windows 7 avec la commande mail de PHP donc... .

    EDIT:
    Bon, j'ai vérifié avec telnet sur le serveur SMTP de google
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >telnet 173.194.66.108 25
    et je n'ai pas de réponse. Donc doit y avoir une coquille dans le potage quelque part côté réseau qui m'empêche de contacter le serveur. Comme le firewall est a priori ok je pense regarder côté box.

    Quelqu'un aurait expérimenté le même problème?

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 431
    Points : 43 057
    Points
    43 057
    Par défaut
    Par ailleurs, souvent le port 25 est fermé par le FAI, il faut alors utiliser du smtp authentifié.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Par ailleurs, souvent le port 25 est fermé par le FAI, il faut alors utiliser du smtp authentifié.
    Bonjour,
    J'ai le même problème;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain
    Après dans mon fichier main.conf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_type = cyrus
    smtpd_sasl_security_options = noanonymous
    broken_sasl_auth_clients = yes
    smtpd_sasl_authenticated_header = yes
    smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
    smtpd_tls_auth_only = no
    smtp_use_tls = yes
    smtpd_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_key_file = /etc/postfix/ssl/fichierkey.key
    smtpd_tls_cert_file = /etc/postfix/ssl/fichierkey.crt
    smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom
    Et dans le fichier master.cf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    smtps     inet  n       -       n       -       -       smtpd
          -o smtpd_sasl_auth_enable=yes
          -o smtpd_reject_unlisted_sender=yes
          -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
          -o broken_sasl_auth_clients=yes
    A l'exécution de mon script PHP (PHPMailer), j'ai obtenu toujours l'erreur suivant: SMTP connect() failed :/ ??

    merci

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Par ailleurs, souvent le port 25 est fermé par le FAI, il faut alors utiliser du smtp authentifié.
    Tu peux préciser? Que faut-il alors faire?

    Sinon, petite mis-à-jour de là où j'en suis:

    J'ai ouvert le port 25 (redirection de port) sur ma freebox mais rien n'y fait (même après redémarrage de la box au cas où pour être sûr que le paramètre a bien été pris en compte), je n'ai toujours pas de réponse à un telnet sur le smtp de google.
    Par curiosité j'ai essayé sur le smtp de yahoo mail et c'est pareil:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >telnet 188.125.69.59 25 ou >telnet  smtp.mail.yahoo.com 25
    Par contre ça fonctionne parfaitement sur le smtp de free.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >telnet 212.27.48.4 25
    Trying 212.27.48.4...
    Connected to 212.27.48.4.
    Donc mon petit doigt me dit que google et yahoo empêchent la connexion au port 25 sur leurs serveurs SMTP. Par contre free accepte pour ses boxes (celles dont l'IP est connue de Free). Et ce même si je désactive la redirection du port 25 sur mon serveur depuis le panneau de http://mafreebox.freebox.fr/.

    J'ai retourné l'Internet dans tous les sens et je n'ai rien trouvé pour confirmer ce que je marque.

    Toute validation/infirmation est la bienvenue.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Je confirme ce que je pensais après avoir réussi avec succès le telnet sur le smtp de free => j'arrive à envoyer un email depuis mon serveur local en passant par smtp.free.fr.

    Donc c'est peut-être free (via la freebox?) qui empêche d'ouvrir une connexion sur le port 25 d'un serveur SMTP autre que celui de free.
    Si quelqu'un peut confirmer... .

    Merci pour votre aide!

  10. #10
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 431
    Points : 43 057
    Points
    43 057
    Par défaut
    Regardes du coté de smtp_relay. ce paramètre existe sur PostFix, il permet d'envoyer le mail au smtp de ton FAI. Ca doit aussi exister sous Exim.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Regardes du coté de smtp_relay. ce paramètre existe sur PostFix, il permet d'envoyer le mail au smtp de ton FAI. Ca doit aussi exister sous Exim.
    Je n'ai pas trouvé l'équivalent. A moins que ce soit dc_eximconfig_configtype='smarthost'.

    Bon, je me suis fais de fausses joies. Ca ne fonctionne plus. Ca a marché une fois sans que je sache pourquoi. Je n'ai pas l'impression d'avoir changé mes paramètres entre deux essais.

    Avec un telnet sur smpt.free.fr port 25 j'arrive à envoyer un mail en suivant le protocole à "la mano".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    telnet smtp.xxxx.xxxx 25 
    Connected to smtp.xxxx.xxxx.
    220 smtp.xxxx.xxxx SMTP Ready
    HELO client
    250-smtp.xxxx.xxxx
    250-PIPELINING
    250 8BITMIME       
    MAIL FROM: <auteur@yyyy.yyyy>
    250 Sender ok
    RCPT TO: <destinataire@xxxx.xxxx>
    250 Recipient ok.
    DATA
    354 Enter mail, end with "." on a line by itself
    Subject: Test
     
    Corps du texte
    .
    250 Ok
    QUIT
    221 Closing connection
    Connection closed by foreign host.
    Par contre avec exim ça ne marche pas.

    J'ai le message suivant systématiquement maintenant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    2014-02-13 20:35:30 exim 4.80 daemon started: pid=5541, -q30m, listening for SMTP on [127.0.0.1]:25 [::1]:25
    2014-02-13 20:35:31 Start queue run: pid=5543
    2014-02-13 20:35:31 End queue run: pid=5543
    2014-02-13 20:35:40 exim 4.80 daemon started: pid=5846, -q30m, listening for SMTP on [127.0.0.1]:25 [::1]:25
    2014-02-13 20:35:40 Start queue run: pid=5848
    2014-02-13 20:35:40 End queue run: pid=5848
    2014-02-13 20:35:52 1WE24e-0001We-KJ <= user@free.fr U=root P=local S=377
    2014-02-13 20:35:52 1WE24e-0001We-KJ == user@free.fr R=smarthost T=remote_smtp_smarthost defer (-53): retry time not reached for any host
    2014-02-13 20:39:01 1WE27h-0001Wv-R2 <= user@free.fr U=root P=local S=1206
    2014-02-13 20:39:02 1WE27h-0001Wv-R2 == user@free.fr <root@mamachine.mondomaine.fr> R=smarthost T=remote_smtp_smarthost defer (-53): retry time not reached for any host

    A noter que je n'ai pas de DNS. Donc je ne sais pas si ça peut avoir une influence sur mon problème. Genre je me suis fais blacklisté par les SMTP car mon domaine n'est pas valide... .

  12. #12
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Rapido en passant avant de terminer cette journée éprouvante

    J'ai refait le test sur le port 25 au lieu du port 587 et ça a fonctionné.

    Donc y'a un truc que j'ai dû louper sur l'utilisation d'un relai SMTP sur le port 587. Faudra creuser ça. J'ai eu la puce à l'oreille grâce à cette FAQ pour exim sur Debian: https://wiki.debian.org/PkgExim4UserFAQ

    Sur ce je vais me coucher!

  13. #13
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 431
    Points : 43 057
    Points
    43 057
    Par défaut
    Mages,

    Le port 25 c'est pour le smtp standard. Le port 465 c'est pour le smtps, smtp SSL, le port 587 smtp msa smtp avec STARTTLS.
    Le smtp msa demande aune authentification.

    Certains FAI bloquent le port 25 par rapport au SPAM sauf vers leur SMTP.

    Tout dépend de la config du smtp, tu peux très bien devoir utiliser le port 587 sans couche STARTTLS.

    Si tu utilises un relai SMTP, c'est sur le port 25, car les smtp entre eux communiquent sur le port 25, ils peuvent aussi communiquer en SSL, mais je pense qu'au niveau normes Internet, un serveur SMTP ne doit pas refuser une connexion non cryptée d'un autre serveur SMTP

    Avec la commande mail de php sur un mutualisé, tu te préoccupes pas du serveur smtp derrière, sauf au niveau des contraintes : nombre de contacts simultané par mail, nombre de mails dans l'heure, taille des PJs etc ..
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  14. #14
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Merci pour tes éclaircissements. Donc j'ai finalement fait ce qu'il faut: faire communiquer mon serveur SMTP avec celui de mon FAI sur le port 25.

Discussions similaires

  1. Envoi de spam depuis mon site
    Par Vercetti dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 17/06/2015, 10h50
  2. Réponses: 1
    Dernier message: 15/11/2012, 01h08
  3. Résultat d'envoi d'un mail par CGI depuis mon site
    Par Rifton007 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/07/2009, 11h13
  4. [Mail] Envoyer un email depuis un site
    Par killer_instinct dans le forum Langage
    Réponses: 13
    Dernier message: 17/04/2007, 10h12
  5. Caractère bizarre lors de l'envoi de mail depuis un site : é à la place de é
    Par Dsphinx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 16/04/2007, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo