web-dev-qa-db-fra.com

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

Je voudrais que mes cronjobs puissent envoyer du courrier depuis mon ordinateur à la maison. 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 ssl smtp protégé par mot de passe par lequel je pourrais acheminer le courrier, mais je n'ai pas réussi à comprendre comment configurer exim4 pour que cela fonctionne. J'espère que quelqu'un pourra me donner un exemple de configuration dans lequel je pourrai brancher le nom d'hôte, le nom d'utilisateur, le mot de passe et "utiliser ssl" pour qu'il puisse envoyer des messages via un seul serveur smtp.

19
Stephen Ostermiller

J'ai finalement trouvé un ensemble d'instructions détaillées de Tony Scelfo qui fonctionnent réellement . Il semble que vous deviez utiliser TLS (Transport Layer Security) sur le port 587. Je n’ai pas obtenu le protocole SSL SMTP pour fonctionner.

Commencez par exécuter Sudo dpkg-reconfigure exim4-config et utilisez les options de configuration suivantes:

  • Type général de configuration du courrier: courrier envoyé par smarthost; reçu via SMTP ou fetchmail
  • Nom de messagerie du système: <votre nom d'hôte>
  • Adresse IP à écouter pour les connexions SMTP entrantes: 127.0.0.1
  • Autres destinations pour lesquelles un courrier est accepté: <votre nom d'hôte>
  • Machines à relayer du courrier pour: <laissez ce champ vide>
  • Adresse IP ou nom d'hôte du serveur de modem sortant: mail.example.com::587
  • Masquer le nom du courrier local dans le courrier sortant?
    • Oui, tous les messages sortants semblent provenir de votre compte gmail.
    • Non - les messages envoyés avec un en-tête de nom d’expéditeur valide conserveront le nom de l’expéditeur.
  • Limitez-vous le nombre 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.client et ajoutez les lignes suivantes pour votre hôte de messagerie, ainsi que ses alias (trouvés via nslookup). Remplacez <adresse électronique> 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 fichier passwd.client, exécutez Sudo update-exim4.conf qui intégrera vos modifications dans votre configuration Exim4.

Exécutez Sudo /etc/init.d/exim4 restart et assurez-vous que le service s’arrête et démarre correctement. Si le service ne parvient pas à redémarrer, une erreur s'est probablement produite lors de la modification du fichier passwd.client.

Si Exim4 a redémarré, lancez Sudo tail -f /var/log/exim4/mainlog pour consulter les journaux de messagerie. Dans une autre fenêtre, envoyez un courrier électronique à partir de votre système et assurez-vous qu’un enregistrement s’affiche avec R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16. X=TLS signifie que le courrier est envoyé avec la sécurité de la couche de transport qui vous convient.

25

Si votre fournisseur de services Internet requiert une authentification, vous devez définir dc_smarthost sur le nom d’hôte du serveur de messagerie et la combinaison de ports utilisés par votre fournisseur de services, et dc_eximconfig_configtype sur "smarthost" comme suit:

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

Ensuite, vous pouvez ajouter vos informations d'identification à /etc/exim4/passwd.client comme ceci:

mail.example.com:username:password

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

5
dobey

Cela fonctionne très bien pour moi. Mon fournisseur de services Internet utilise les ports 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 exim4 classic, par exemple:

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 flux ok à la boîte de réception de my-user dans my-domain-url.

4
gsavix