Comment configurer exim4 pour envoyer du courrier via un serveur de messagerie smtp ssl protégé par mot de passe?


19

J'aimerais que mes tâches cron soient en mesure d'envoyer du courrier à partir de mon ordinateur personnel. Mes serveurs configurent exim4 comme ceci:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

Cependant, à la maison, mon FAI bloque le courrier envoyé directement via un pare-feu. J'ai un serveur sms protégé par mot de passe SSL par lequel je pouvais acheminer le courrier, mais je n'ai pas réussi à trouver comment configurer exim4 pour que cela fonctionne. J'espère que quelqu'un peut me donner un exemple de configuration où je peux brancher le nom d'hôte, le nom d'utilisateur, le mot de passe et "utiliser ssl" pour l'obtenir pour envoyer du courrier via un seul serveur smtp.

Réponses:


25

J'ai finalement trouvé un ensemble d'instructions détaillées de Tony Scelfo qui fonctionnent réellement . Il semble que vous devez utiliser la sécurité de la couche de transport (TLS) sur le port 587. Je n'ai pas réussi à faire fonctionner SSL SMTP.

Exécutez d'abord sudo dpkg-reconfigure exim4-configet utilisez ces options de configuration:

  • Type général de configuration du courrier: courrier envoyé par smarthost; reçu via SMTP ou fetchmail
  • Nom de messagerie système: <votre nom d'hôte>
  • Adresse IP à écouter pour les connexions SMTP entrantes: 127.0.0.1
  • Autres destinations pour lesquelles le courrier est accepté: <votre nom d'hôte>
  • Machines pour relayer le courrier pour: <laissez ce champ vide>
  • Adresse IP ou nom d'hôte du smarthost sortant: mail.example.com::587
  • Masquer le nom du courrier local dans le courrier sortant?
    • Oui - tout le courrier sortant semblera provenir de votre compte Gmail
    • Non - le courrier envoyé avec un en-tête de nom d'expéditeur valide gardera le nom de l'expéditeur
  • Garder un nombre minimal de requêtes DNS (Dial-on-Demand)? Non
  • Mode de livraison du courrier local: <choisissez celui que vous préférez>
  • Diviser le fichier de configuration en petits fichiers? Oui (vous devez éditer l'un des fichiers ensuite)

Ensuite, exécutez sudo vi /etc/exim4/passwd.clientet ajoutez les lignes suivantes pour votre hôte de messagerie et tous les alias qu'il possède (trouvés via nslookup). Remplacez <adresse e-mail> et <mot de passe> par le compte par lequel vous souhaitez acheminer le courrier):

mail.example.com:<email address>:<password>
mail.yourhosting.provider:<email address>:<password>

Une fois que vous avez édité le passwd.clientfichier, lancez sudo update-exim4.confqui intégrera vos modifications dans votre configuration Exim4.

Exécutez sudo /etc/init.d/exim4 restartet assurez-vous que le service s'arrête et démarre correctement. Si le service ne parvient pas à redémarrer, un problème est probablement survenu lors de la modification du passwd.clientfichier.

Si Exim4 a redémarré, continuez et exécutez sudo tail -f /var/log/exim4/mainlogpour regarder les journaux de messagerie. Dans une autre fenêtre, envoyez un e-mail à partir de votre système et assurez-vous que vous voyez un enregistrement y passer R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16. Les X=TLSmoyens que le courrier est envoyé avec la sécurité de la couche de transport qui est ce que vous voulez.


1
Pas besoin de "diviser le fichier de configuration en petits fichiers" car /etc/exim4/passwd.clientc'est un fichier séparé dans les deux cas.
Exécutez CMD

Veuillez noter que la spécification du port SMTP peut ne pas fonctionner avec tous les serveurs de messagerie. Mais exim4utilisera quand même TLS avec le port SMTP par défaut si le serveur de messagerie le propose. Il peut être vérifié en regardant les X=informations dans/var/log/exim4/mainlog
Exécuter CMD

S'il vous plaît, dirigez-moi simplement dans la bonne direction. Je ne veux pas dupliquer une question. Que faire si je veux que tous les utilisateurs définissent leurs propres mots de passe stmp dans leurs répertoires HOME? Exim4 recherchera-t-il divers passwd.client? Tx
Dr Beco

Cela me semble être une nouvelle question
Stephen Ostermiller

@DrBeco Si vous avez une question spécifique qui n'est pas spécifique à cette question ou réponse, veuillez la poser comme une question .
Thomas Ward

5

Si votre FAI requiert une authentification, vous devez définir dc_smarthost sur la combinaison nom d'hôte et port du serveur de messagerie utilisé par votre FAI, et dc_eximconfig_configtype sur "smarthost" comme ceci:

dc_eximconfig_configtype='smarthost'
dc_smarthost='mail.example.com::587'

Ensuite, vous pouvez ajouter vos informations d'identification à /etc/exim4/passwd.clientaimer ainsi:

mail.example.com:username:password

Ensuite, tout courrier envoyé via votre serveur exim4 sera acheminé via cet hôte de messagerie.


10
Dans update-exim4.conf, j'ai mis deux deux points pour la ligne smarthost, comme dans dc_smarthost='mail.example.com::587'et cela a fait toute la différence! Enfin commencé à envoyer du courrier.
Marcos

+1 C'est une erreur très courante que j'ai vue sur de nombreux tutoriels.
TwystO

4

Cela fonctionne très bien pour moi. Mon FAI utilise le port 25 et dc_smarthost='myisp.mail.server:25' après avoir modifié ces fichiers et émis des commandes:

  1. update-exim4.conf
  2. /etc/init.d/exim4 restart

Après avoir fait un test pour envoyer un e-mail via un exemple classique d'exim4 comme:

echo "content of mail body with pt-br chars ação avião língua é essa em 1609." | mail -s "Confirmar 16DOM" my-user-in-isp@my-domain-url

Et ces ok flux à la boîte de réception de my-userdans my-domain-url.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.