2008-11-05 4 views
2

J'ai un ordinateur à la maison auquel je ne peux pas accéder du travail. J'aimerais pouvoir voir les résultats du travail que mon ordinateur personnel produit. La meilleure idée que j'ai trouvée est un script automatisé fonctionnant sur mon ordinateur personnel qui m'envoie moi-même les résultats (à partir d'un fichier texte ou stderr/out) une fois terminé. Je suis décent avec bash (j'ai un linux machine) et java, donc une réponse en utilisant l'un ou l'autre de ces deux serait idéal, mais s'il y a quelque chose de plus facile, c'est bien aussi.automatisation: vous envoyer un e-mail un fichier

J'utilise généralement gmail, mais j'ai aussi du courrier yahoo.

Ma question est la suivante: quelles seraient les étapes de base pour résoudre ce problème? Je peux faire les trucs de Nitty Gritty, mais je ne peux pas vraiment avoir une vue d'ensemble de la façon dont quelque chose comme ça fonctionnerait.

Aidez-nous s'il vous plaît.

JBU

Répondre

0

Traditionnellement, les systèmes unix comme Linux, vous auriez un MTA, un agent de transfert de courrier, sur l'ordinateur qui traite l'envoi d'e-mail.

Cela peut être un serveur de messagerie complet comme exim, ou quelque chose de simple comme ssmtp qui envoie simplement des messages sur un serveur SMTP relais tel que fourni par votre FAI.

Ce n'est plus forcément le cas, car les clients de messagerie comme Thunderbird incluent leur propre MTA, un peu comme les clients de messagerie sous Windows.

Cependant, il est probable que votre distribution installe un MTA ou un autre par défaut, si ce n'est que le fait que d'autres éléments sur votre système, comme cron, veulent pouvoir envoyer des messages électroniques. Généralement il y aura un outil de ligne de commande appelé sendmail (sendmail étant le MTA original [citation nécessaire], d'autres MTA maintiennent la compatibilité avec son interface et il est en quelque sorte devenu la norme) qui peut être utilisé depuis un script shell pour envoyer un e- courrier.

0

Ma solution suppose que vous avez un serveur SMTP disponible qui vous permet d'envoyer un email par programmation. Alternativement, vous pouvez utiliser une installation locale de sendmail qui est généralement disponible avec la plupart des distributions Linux.

Créez un programme Java autonome qui surveille le répertoire dans lequel votre ordinateur domestique enregistre le fichier. Utilisez le JavaMail API pour joindre et envoyer le fichier à l'adresse e-mail que vous souhaitez.

Si vous êtes également familier avec le Spring Framework, il a une belle couche d'abstraction pour travailler avec JavaMail et rend ce genre de chose trivial.

1

Vous ne pouvez pas accéder à votre ordinateur personnel à partir d'un travail qui exclut une option de «support à distance».

Pouvez-vous accéder à d'autres ordinateurs sur Internet? Si tel est le cas, vous pouvez simplement configurer l'une des options de stockage en ligne, puis transférer les résultats depuis votre ordinateur personnel. C'est beaucoup plus simple que d'essayer d'écrire des scripts ou du code pour générer des emails avec des pièces jointes ou autres.

Vous pouvez ensuite voir l'ordinateur externe du travail.

2

Sur un Linux j'ai utilisé le envoi de courrier en ligne de commande est simple:

mail -s "My subject here" [email protected] <message_body.txt 

AFAIK cela agit comme un front-end à sendmail, et vous devez avoir sendmail configuré pour transmettre les messages à votre serveur de messagerie ISP.

1

Si vous avez netcat, cette commande vous enverra un e-mail:

Compte tenu d'un fichier dans ce format (de Wikipedia):

HELO relay.example.org 
MAIL FROM:<[email protected]> 
RCPT TO:<[email protected]> 
RCPT TO:<[email protected]> 
DATA 
From: "Bob Example" <[email protected]> 
To: Alice Example <[email protected]> 
Cc: [email protected] 
Date: Tue, 15 Jan 2008 16:02:43 -0500 
Subject: Test message 

Hello Alice. 
This is a test message with 5 headers and 4 lines in the body. 
Your friend, 
Bob 
. 
QUIT 

NETcat ensuite à un serveur SMTP que vous avez accès à:

nc mail.somewhere.com 25 < file.txt 

Cela enverra alors l'e-mail. Vous pouvez voir comment vous pouvez créer un programme Java pour le faire pour vous (il suffit d'exécuter les commandes).

+0

netcat semble une solution terriblement compliquée et sujette aux erreurs. Vous ne gérez pas les réponses du serveur SMTP, par exemple, et vous n'avez aucun moyen de déterminer si cela a été un succès ou un échec. Si un MTA est configuré, ce serait beaucoup plus facile. – SpoonMeiser

3

Howto mis en place ssmtp à envoyer par un compte Gmail

Certaines des étapes ici peut sembler étrange au début, mais la raison d'être est mis en bas de page qui devrait, espérons-vous expliquer pourquoi.

Créez d'abord un compte de rechange sur gmail que vous utiliserez uniquement pour envoyer un e-mail à . Par exemple, si votre compte normal est [email protected], créez un compte [email protected] avec un nouveau mot de passe que vous utiliserez uniquement pour ce compte [1].

Configurer le nouveau compte pour transférer tous les e-mails vers le compte normal [2] et dans les paramètres du compte, vous devez ajouter toutes les autres adresses e-mail que vous utilisez [3].

Ensuite, installez ssmtp (sur Debian: aptitude install ssmtp) et modifier le fichier de configuration de ssmtp /etc/ssmtp/ssmtp.conf:

 
[email protected] 
mailhub=smtp.gmail.com:587 
UseSTARTTLS=YES 
AuthUser=user.noreply 
AuthPass=passwdusedonlyforthisaccount 
FromLineOverride=YES 

et configurer la livraison de courrier local en éditant /etc/ssmtp/revaliases en supposant que votre connexion locale est localuser:

 
root:[email protected]:smtp.gmail.com:587 
localuser:[email protected]:smtp.gmail.com:587 

Assurez-vous que les deux fichiers de configuration sont lisibles à tous les utilisateurs qui devraient être en mesure d'envoyer un courriel [4].

Testez la configuration par ex. mailx (Sur Debian: aptitude install bsd-mailx):

 
echo 'testing, one, two' | mailx -s 'test 1' [email protected] 

Hope this helps.


[1] Le nouveau nom d'utilisateur gmail et mot de passe seront visibles à tous ceux qui peuvent se connecter sur votre machine, de sorte que vous ne voulez pas que ce compte soit critique de quelque façon, ce qui signifie que vous pouvez le fermer vers le bas immédiatement si quelqu'un devrait y avoir accès.

[2] Si un email que vous avez envoyé à vous Rebond, vous voudrez peut-être savoir à ce sujet, et il existe effectivement des gens qui répondront avec plaisir à un e-mail de johnsmith.noreply.

[3] Gmail réécrira l'en-tête From dans l'e-mail s'il ne reconnaît pas l'adresse.

[4] Ssmtp s'exécute en tant qu'utilisateur local qui envoie l'e-mail, de sorte que l'utilisateur ait besoin de accès en lecture aux fichiers de configuration.

0

Bien sûr, votre FAI d'origine a probablement aussi le port SMTP commun bloqué.

Questions connexes