Як надсилати пошту з терміналу за допомогою сценарію

З причин X чи Y, іноді нам потрібно запрограмувати сервер нашої компанії на виконання певного завдання, і ми хочемо знати, чи було це завдання виконано без проблем, для цього ми програмуємо, що якщо все пройшло без проблем, повідомте нас ... але ... ¿Як може сервер повідомити нас?

Дуже просто, ми розповімо вам за допомогою сценарію Python щоб надіслати нам електронне повідомлення, таким чином, коли ми перевіримо поштову скриньку, ми прочитаємо, якщо сервер не мав проблем з розміщенням замовлення.

Сценарій залишив їх тут: send-email.py

Користуватися ним дуже просто, відкрийте термінал, у ньому напишіть наступне і натисніть [Введіть]:

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

Я залишаю вам, яким би був процес:

% КОД 1%

Як тільки це буде зроблено, ви повинні відредагувати сценарій, щоб розмістити свої власні дані, я відредагую його, помістивши свої дані, тобто дані звідси моя робота.

Відкрийте скрипт (send-email.py) і змініть ці дані:

  • Ваша електронна адреса@desdelinux. Net електронною поштою (у цьому прикладі - » kzkggaara@ipichcb.rimed.cu)
  • Тіло повідомлення за змістом електронного листа (у цьому прикладі - » Це тестовий електронний лист)
  • you.mailserver.cu вашим поштовим сервером (у цьому прикладі - » 192.168.1.2)
  • твій емейл користувачем (у цьому прикладі - » кзкггаара)
  • Ваш пароль для вашого пароля (у цьому прикладі - » HAHA ... так ... звичайно ... LOL)

Це виглядає так: send-email.py (Змінено)

І вуаля, залишається лише надіслати електронний лист ... для цього ми помістимо наступне:

  • python send-email.py "Тут ми розміщуємо тему" отримувач@domain.com

Іншими словами, ми повинні виконати сценарій і передати йому параметр "Тема" (тобто тему, яку буде приймати електронне повідомлення), а також кому (адреса електронної пошти) він буде надісланий.

Я надішлю собі електронне повідомлення, ось приклад:

% КОД 2%

А тепер 😀

Як бачите, щось досить просте ... але це може нам допомогти в певних випадках 😉

привіт


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   джондарлек - сказав він

    це дуже добре .. але я хочу щось подібне, що працює для Windows, але я не можу його знайти 🙁

    1.    KZKG ^ Гаара - сказав він

      Для Windows ... ммм ... ви повинні встановити Python на друга Windows: http://www.python.org/getit/windows/

    2.    Джон - сказав він

      для Windows існує інструмент, який називається Cobian, він дуже хороший та інтуїтивно зрозумілий

  2.   Карлос Т. - сказав він

    як включити скрипт для надсилання за допомогою gmail (smtp)?

    1.    ельвільмер - сказав він

      У мене таке ж питання: /

      Я можу:

      s = SMTP ('smtp.gmail.com')
      s.starttls () # Якщо ви використовуєте TLS
      s.ehlo ()

      Однак це видає мені цю помилку:

      python send-email.py "Тут ми помістимо тему" aquimi@correo.com
      Traceback (останній останній дзвінок):
      Файл "send-email.py", рядок 14, в
      s = SMTP ('smtp.gmail.com')
      Файл "/usr/lib/python2.6/smtplib.py", рядок 239, у __init__
      (код, повідомлення) = self.connect (хост, порт)
      Файл "/usr/lib/python2.6/smtplib.py", рядок 295, у підключенні
      self.sock = self._get_socket (хост, порт, self.timeout)
      Файл "/usr/lib/python2.6/smtplib.py", рядок 273, у _get_socket
      повернути socket.create_connection ((порт, хост), час очікування)
      Файл "/usr/lib/python2.6/socket.py", рядок 561, у create_connection
      підняти помилку, повідомлення
      socket.error: [Errno 101] Мережа недоступна

  3.   Рідісет - сказав він

    Це добре, а потім ви запрограмуєте це за допомогою cron і готові повідомити: D.

    1.    KZKG ^ Гаара - сказав він

      Так! хе-хе, заощадьте багато часу, автоматизуйте речі за допомогою scipts 🙂

  4.   Лювід - сказав він

    Дякую за допис, мені це цікаво, а додавання функціональності, яку цитує Reedyseth, має ще одну утиліту. 😉 привітання компаси!

    1.    KZKG ^ Гаара - сказав він

      Дякую за коментар 😀
      Привіт друг.

  5.   Neo61 - сказав він

    Гаара, мій друже, я впевнений, що ця стаття дуже гарна, як усі тут підкреслюють, але я - NO-PUE-DO-SE-LOS-E-JEM-PLOS-POR-MI-MAL-DI-TA-CO-NEC - ТІОН
    ЩО Я ЗРОБУ, ЩОБ ЇХ БАЧИТИ, РІЗАЛИ ГОРО?

    1.    KZKG ^ Гаара - сказав він

      Не можете відкрити це посилання? - » http://paste.desdelinux.net/89

  6.   Neo61 - сказав він

    Дозвольте щось запитати, чи можу я зробити сценарій, щоб у певний день я міг надіслати конкретне повідомлення всім користувачам мого центру? Я думаю, що так, але ви фахівець, і якщо ви підтвердите це, чи можете ви допомогти мені зробити його?

    1.    KZKG ^ Гаара - сказав він

      Так, щоб зробити "щось" у певний день ви повинні використовувати кронтаб.
      Тоді, припускаючи, що ви хочете надіслати файл .PDF (наприклад, note.pdf) своїм користувачам, надсилати лише на 1 електронне повідомлення буде:
      mail -s "Este es el asunto del correo" direccionemail@loquesea.cu < nota.pdf

      Тепер, щоб надіслати це, але не лише на одну адресу, але і на багато інших ... вам потрібно буде мати адреси в текстовому файлі (відокремленим розривом рядка), а потім використовувати цикл та цінності. Наприклад, якщо у вас є адреси електронної пошти в Address.txt, це буде:

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

  7.   Девід свічка - сказав він

    Дякую приятелю, сценарій чудово працює.

  8.   Френк - сказав він

    Де сценарій, якщо ви можете мені допомогти

  9.   Арелі - сказав він

    Ви можете поділитися прикладами ????