Как постоянный пользователь Ubuntu, вы, вероятно, хорошо знаете возможности командной строки. В этой статье мы рассмотрим, как можно использовать Gmail из терминала для отправки писем, настроив клиент msmtp. У gmail довольно удобный и привлекательный интерфейс, так почему же мы решили использовать командную строку?
Зачем использовать Терминал для отправки электронной почты?
Если вы пользуетесь Терминалом, вам не захочется покидать комфортную командную строку и переходить в другое место для выполнения повседневных технических действий. Всегда есть способ сделать почти все наши дела прямо в Терминале. Так почему же отправка электронной почты должна быть другой! Использование Терминала делает некоторые задачи более эффективными и даже быстрыми. Инструменты командной строки не потребляют слишком много ресурсов и поэтому являются отличной альтернативой широко используемым графическим приложениям, особенно если у вас устаревшее оборудование. Отправка электронной почты из Терминала становится особенно удобной, когда вы можете писать сценарии оболочки для отправки электронной почты и автоматизировать весь процесс.
Шаг 1: Откройте приложение Терминал
Откройте приложение Терминал либо с помощью сочетания клавиш Ctrl+Alt+T, либо через поиск в Пуске приложений следующим образом:
Шаг 2: Обновить индекс репозитория
Следующим шагом будет обновление индекса репозитория вашей системы с помощью следующей команды:
1 | sudo apt-get update |
Это поможет вам установить последнюю доступную версию программного обеспечения из Интернета. Обратите внимание, что только авторизованный пользователь может добавлять, удалять и настраивать программное обеспечение на Ubuntu.
Шаг 3: Установите клиент Msmtp
Теперь вы готовы установить msmtp-клиент из терминала; вы можете сделать это, выполнив следующую команду от имени sudo:
1 | sudo apt-get install msmtp-mta |
Система может запросить пароль для sudo, а также предложить вам опцию Y/n для продолжения установки. Введите Y и нажмите Enter; программное обеспечение будет установлено на вашу систему. Однако процесс может занять некоторое время в зависимости от скорости вашего Интернета.
Шаг 4: Настройте msmtp для работы с gmail
Теперь настало время настроить msmtp, указав ему наши учетные данные gmail, порт для использования, хост и некоторые другие детали авторизации и подключения:
Откройте файл с именем msmtprc в одном из ваших любимых текстовых редакторов. Я использую известный редактор Nano, чтобы открыть файл следующим образом:
1 | nano ~/.msmtprc |
Затем скопируйте следующий код в пустой файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #аккаунт в Gmail defaults #измените местоположение файла журнала на любое желаемое. logfile ~/msmtp.log account gmail auth on host smtp.gmail.com from <yourmail@gmail.com> auth on tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt user <yourmail@gmail.com> password <your-password> port 587 #установите gmail в качестве почтового сервера по умолчанию. account default : gmail |
Вместо того, чтобы набирать весь код в файле, вы можете скопировать его отсюда и вставить в Терминал с помощью сочетания клавиш Ctrl+Shift+V, или с помощью опции Paste из меню правой кнопки мыши.
Теперь выйдите из файла через сочетание клавиш Ctrl+X и сохраните файл на запрос "Сохранить измененный буфер?", набрав Y и нажав Enter.
Сохранение пароля в текстовом формате в любом из ваших файлов никогда не будет хорошей идеей. Поэтому вы можете защитить файл, выполнив следующую команду:
1 | chmod 600 ~/.msmtprc |
Шаг 5: Установите heirloom-mailx
На данном этапе мы настроили наш компьютер для общения с удаленным сервером Gmail. Теперь нам нужно настроить интерфейс командной строки, который позволит нам составлять электронные письма для отправки. Mailx - это программа, которая позволит нам сделать все это, и вот как мы можем ее установить:
1 | sudo apt-get install heirloom-mailx |
Система может запросить пароль для sudo, а также предложить вам опцию Y/n для продолжения установки. Введите Y и нажмите Enter; программное обеспечение будет установлено на вашу систему. Однако процесс может занять некоторое время в зависимости от скорости вашего Интернета.
Если вы не можете найти пакет в уже добавленных репозиториях, откройте файл sources.list следующим образом:
1 nano /etc/apt/sources.listЗатем добавьте следующую строку, чтобы добавить репозиторий rusty-security main universe, откуда мы будем устанавливать утилиту mailx.
1 deb http://security.ubuntu.com/ubuntu trusty-security main universeТакже не забудьте выполнить следующую команду перед установкой:
1 sudo apt-get updateдля обновления списка пакетов.
Шаг 6: Настройте Mailx
Откройте файл с именем .mailrc через один из ваших любимых текстовых редакторов.
1 | nano ~/.mailrc |
Затем добавьте следующие строки в этот файл и сохраните его.
1 2 | set sendmail="/usr/bin/msmtp" set message-sendmail-extra-arguments="-a gmail" |
Шаг 7: Отправка электронного письма через терминал
Теперь мы готовы отправить письмо через настроенный аккаунт gmail получателю на любом домене. Ниже приведен основной синтаксис для отправки такого письма:
1 |
Отправка вложения вместе с письмом необязательна.
Когда вы нажмете Enter, вам будет разрешено ввести текст письма. Как только вы закончите вводить текст письма, нажмите Ctrl+D. Это отметит конец тела письма и отправит его на соответствующий ID получателя.
Символ EOT в конце вывода будет означать, что ваше письмо отправлено.
Однако, как и я, вы можете столкнуться с наиболее распространенной ошибкой:
Эта ошибка чаще всего возникает, если вы не разрешили доступ к менее безопасным приложениям на вашем gmail. Этот параметр безопасности можно изменить по следующей ссылке:
https://myaccount.google.com/lesssecureapps
Когда вы это сделаете, вам будет отправлено уведомление (в основном на ваш телефон, если вы настроили свой номер телефона в gmail). Когда вы разрешите это изменение настроек, gmail разрешит доступ к менее безопасным приложениям, таким как то, которое мы используем.
Попробуйте снова отправить письмо через CLI, и ваше письмо будет успешно отправлено получателю с вашего gmail ID.
Заключение
Теперь вы можете включить этот метод в свои сценарии bash, чтобы сделать его более полезным и сэкономить время и использование ширины канала Интернет.