E-mail verzenden vanaf de terminal met behulp van een script

Om X- of Y-redenen moeten we soms de server van ons bedrijf programmeren om een ​​bepaalde taak uit te voeren, en we willen weten of deze taak zonder problemen is uitgevoerd, hiervoor programmeren we dat als alles soepel is verlopen, ons op de hoogte stelt ... maar ... ¿Hoe kan de server ons hiervan op de hoogte stellen?

Heel eenvoudig, we zullen het je vertellen via een script Python Stuur ons een e-mail, op deze manier zullen we bij het controleren van de mailbox lezen of de server geen problemen heeft gehad om de bestelling te plaatsen.

Het script heeft ze hier achtergelaten: verzend-e-mail.py

Om het te gebruiken is heel eenvoudig, open een terminal, schrijf daarin het volgende en druk op [Enter]:

cd $HOME/ && wget http://paste.desdelinux.net/paste/?dl=89 && mv index.html\?dl\=89 send-email.py && chmod +s send-email.py

Ik laat je achter hoe het proces zou zijn:

% CODE1%

Zodra dit is gebeurd, moet u het script bewerken om uw eigen gegevens te plaatsen, ik zal het bewerken door mijn gegevens in te voeren, dat wil zeggen de gegevens van hier mijn werk.

Open het script (send-email.py) en verander deze informatie:

  • jouw email@desdelinux.net via uw e-mail (in dit voorbeeld - » kzkggaara@ipichcb.rimed.cu)
  • Bericht lichaam door de inhoud van de e-mail (in dit voorbeeld - » Dit is een testmail)
  • jij.mailserver.cu door uw mailserver (in dit voorbeeld - » 192.168.1.2)
  • jouw email door uw gebruiker (in dit voorbeeld - » kzkggaara)
  • je wachtwoord voor uw wachtwoord (in dit voorbeeld - » HAHA… ja… zeker… LOL)

Het ziet er als volgt uit: send-email.py (gewijzigd)

En voila, het blijft alleen om de e-mail te verzenden ... hiervoor zullen we het volgende plaatsen:

  • python send-email.py "Hier zetten we het onderwerp" recipient@domain.com

Met andere woorden, we moeten het script uitvoeren en het de "Subject" -parameter doorgeven (dat wil zeggen, het onderwerp dat de e-mail zal aannemen) en ook naar wie (e-mailadres) het zal worden verzonden.

Ik zal mezelf een e-mail sturen, hier is het voorbeeld:

% CODE2%

En nu 😀

Zoals je kunt zien, is er iets heel eenvoudigs ... maar het kan ons bij bepaalde gelegenheden helpen 😉

groeten


16 reacties, laat de jouwe achter

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   jodarlek zei

    het is erg goed .. maar ik wil zoiets dat werkt voor Windows, maar ik kan het niet vinden 🙁

    1.    KZKG ^ Gaara zei

      Voor Windows ... mmm ... je moet Python installeren op een Windows-vriend: http://www.python.org/getit/windows/

    2.    John zei

      voor Windows is er een tool genaamd Cobian, het is erg goed en intuïtief

  2.   Carlos T. zei

    hoe schakel ik het script in om met gmail (smtp) te verzenden?

    1.    elwuilmer zei

      Ik heb dezelfde vraag: /

      Ik zou kunnen:

      s = SMTP ('smtp.gmail.com')
      s.starttls () # Als u TLS gebruikt
      s.ehlo ()

      Het geeft me echter deze fout:

      python send-email.py "Hier zetten we het onderwerp" aquimi@correo.com
      Hertraceren (meest recente oproep als laatste)
      Bestand "send-email.py", regel 14, in
      s = SMTP ('smtp.gmail.com')
      Bestand "/usr/lib/python2.6/smtplib.py", regel 239, in __init__
      (code, msg) = self.connect (host, poort)
      Bestand "/usr/lib/python2.6/smtplib.py", regel 295, in verbinding
      self.sock = self._get_socket (host, poort, self.timeout)
      Bestand "/usr/lib/python2.6/smtplib.py", regel 273, in _get_socket
      return socket.create_connection ((poort, host), time-out)
      Bestand "/usr/lib/python2.6/socket.py", regel 561, in create_connection
      verhoog fout, msg
      socket.error: [Errno 101] Het netwerk is onbereikbaar

  3.   reedyeth zei

    Het is goed, en dan programmeer je het met cron en klaar om te rapporteren: D.

    1.    KZKG ^ Gaara zei

      Ja! hehe, bespaar veel tijd, automatiseer dingen met scipts 🙂

  4.   luweeds zei

    Bedankt voor het bericht, ik vind het interessant en het toevoegen van de functionaliteit die Reedyseth citeert, heeft nog een hulpprogramma. 😉 groeten compas!

    1.    KZKG ^ Gaara zei

      Bedankt voor de reactie 😀
      Groeten vriend.

  5.   Neo61 zei

    Gaara, mijn vriend, ik weet zeker dat dit artikel erg goed is, aangezien iedereen hier opvalt, maar ik - NO -PUE-DO-SEE-LOS-E-JEM-PLOS-POR-MI-MAL-DI-TA-CO- NECTIE
    WAT MOET IK DOEN OM ZE TE ZIEN, MIJN KEEL DOOR TE SNIJDEN?

    1.    KZKG ^ Gaara zei

      Kunt u deze link niet openen? - » http://paste.desdelinux.net/89

  6.   Neo61 zei

    Laat me je iets vragen, kan ik een script maken zodat ik op een bepaalde dag een specifiek bericht kan sturen naar alle gebruikers van mijn centrum? Ik kan het me voorstellen, maar jij bent de specialist en als je dit bevestigt, kun je me dan helpen er een te maken?

    1.    KZKG ^ Gaara zei

      Ja, om op een bepaalde dag "iets" te doen, moet u gebruiken crontab.
      Ervan uitgaande dat u een .PDF-bestand (bijvoorbeeld note.pdf) naar uw gebruikers wilt sturen, zou het verzenden naar slechts 1 e-mail zijn:
      mail -s "Este es el asunto del correo" direccionemail@loquesea.cu < nota.pdf

      Om dat nu te verzenden, maar niet alleen naar één adres, maar naar veel meer ... zou u de adressen in een tekstbestand moeten hebben (gescheiden door een regeleinde) en vervolgens een lus moeten gebruiken For. Als u de e-mails bijvoorbeeld in adressen.txt heeft, zou dit zijn:

      for i in `cat direcciones.txt`;
      do
      mail -s "Este es el asunto del correo" $i < nota.pdf
      done

  7.   David kaars zei

    Bedankt maatje, het script werkt prima.

  8.   openhartig zei

    Waar is het script als je me kunt helpen

  9.   Areli zei

    Kunt u alstublieft de voorbeelden delen ????