web-dev-qa-db-fra.com

Comment configurer sendmail, postfix ou dovecot pour que Perl puisse envoyer des emails?

Question directe: Je veux activer Perl pour envoyer des emails. Quel (s) paquet (s) dois-je installer pour configurer un serveur de messagerie simpliste: pas besoin d'être entrant, seulement sortant. Je peux transférer via SMTP de Gmail si c'est mieux?

Background: Je suis programmeur avec un script de construction nocturne écrit en Perl. Je voudrais m'envoyer par e-mail les résultats de mes constructions nocturnes (surtout s'il y a une erreur).

J'ai lu sur le paquet Perl Mail::Sendmail brièvement, mais si quelque chose d'autre est plus approprié, , dites-le moi !!

J'ai essayé le simple aptget install sendmail, mais cela ne semble pas fonctionner. Je reçois les erreurs suivantes:

Le serveur a dit: 421 4.3.0 collecte: impossible d'écrire = 0, gid = 120): Aucun fichier ou répertoire de ce type) Serveur dit: 421 4.3.0 Collect: Impossible d'écrire ./dfp1PFXl7W020719 (bfcommit, uid = 0, gid = 120): Aucun fichier ou répertoire de ce type

J'ai un peu cherché ce problème dans Google et j'ai essayé différentes choses - en ajoutant mon nom d'utilisateur à/etc/mail/Trusted-users et autres, mais en vain.

En d'autres termes, je vous serais très reconnaissant de bien vouloir fournir des instructions simples pour configurer un serveur de courrier sortant. Je ne comprends vraiment pas les détails, mais, si je comprends bien, je dois transférer le courrier via un serveur SMTP existant - pour pouvoir utiliser mon compte Gmail si besoin est (c'est là que je veux quand même envoyer les journaux). Toute suggestion serait très grandement appréciée.

3
M. Tibbits

Vous pouvez également consulter Net :: SMTP, qui vous permet d’envoyer des messages SMTP sans recourir à des programmes externes tels que sendmail. Cela pourrait être un peu hors sujet pour Ask Ubuntu car il s’agit d’une solution purement Perl, mais vous pourriez la trouver préférable. Net :: SMTP est fourni par le paquet Perl-modules, qui devrait être installé par défaut.

2
user8979

Tous sont trop pour le travail. Ssmtp fait ceci - mais seulement ceci.

Sudo apt-get install ssmtp

(Cela supprimera postfix ou sendmail s'il est installé.)

sudoedit /etc/ssmtp/ssmtp.conf

Et le contenu de ce fichier:

[email protected]
Mailhub=smtp.gmail.com:465
RewriteDomain=gmail.com
AuthUser=your_gmail_username # (before the @gmail.com part)
AuthPass=your_gmail_password
FromLineOverride=Yes
UseTLS=Yes
3
user8290

Je maintiens toujours que dovecot-postfix est facile à installer et à configurer.
J'ai plus de détails dans ma réponse à Y a-t-il un serveur de messagerie simple que je peux installer?

Là, EmmyS a pu obtenir que cela fonctionne pour sa fonction phpmail.

Dovecot-postfix fait plus de gros travail que nécessaire, mais il ne faut que quelques éléments de configuration après:

Sudo apt-get install dovecot-postfix
3
belacqua

Il semble que de nombreux serveurs de messagerie fonctionnent, pouvez-vous essayer de fermer sendmail?

Sudo /etc/init.d/sendmail stop

et vérifiez votre port smtp (25) avec

Sudo lsof -i -P -R | grep ':25 '

si vous voyez le port 25, un autre processus est en cours d'exécution, essayez de l'arrêter. Le pid est dans la troisième colonne de la sortie.

Pour configurer correctement postfix: défini sur debconf de bas niveau

Sudo dpkg-reconfigure debconf

choisissez dialogue puis faible niveau d'avertissement. Ensuite, installez postfix avec

Sudo apt-get install postfix 

choisissez l'option standard avec profil "site internet". Si vous avez déjà installé postfix, vous pouvez le reconfigurer en:

Sudo dpkg-reconfigure postfix

Prendre plaisir!

2
lcipriani

Pour le côté Perl, Perl :: SendMail fonctionnera si vous avez un relais local comme SSMTP ou tout autre programme similaire. Il ne semble pas faire d'authentification.

J'ai trouvé un post sur Envoi d'e-mail via GMAIL avec Perl . Sachez que le code aura vos informations d'identification Google. (De même que SSMTP ou tout autre relais que vous utilisez.)

Je suggérerais que vous utilisiez votre serveur de relais ISPs pour envoyer le courrier. Vous pouvez utiliser Perl :: Sendmail standalone dans ce cas.

Solution recommandée: Postfix est installé comme dépendance par de nombreux programmes nécessitant un serveur de messagerie. S'il n'est pas déjà installé, installez-le ou Exim4. Configurez votre serveur pour "courrier envoyé par smarthost; pas de courrier local" en utilisant le relais de votre FAI en tant que smarthost. Configurez les adresses/etc/email pour votre ID utilisateur. Configurez également/etc/aliases pour transférer le courrier électronique sur votre compte gmail.

Si vous utilisez cron pour exécuter, vous générez toute sortie sur stdout ou stderr vous sera envoyé par courrier électronique. Vous pouvez également utiliser mailx pour envoyer des messages si vous souhaitez envoyer des messages à partir d'un script.

2
BillThor