Самый простой способ отправить однострочную почту через командную строку с помощью gmail?

Я не вижу никаких проблем, если вы хотите изменить размер корневого раздела. Вам не нужно убивать разделы.

Прежде всего, вам нужно изменить размер расширенного раздела / dev / mmcblk0p2 . Вы можете сделать это через Gparted . Затем переместите раздел / dev / mmcblk0p8 в конец диска. В конце измените размер корневого раздела / dev / mmcblk0p7 на все свободное пространство.

Если ваш Gparted не хотел изменять размер расширенного раздела / dev / mmcblk0p2 (я думаю, потому что он работал внутри этого раздела), у вас есть два пути:

  1. Восстановите все разделы от mmcblk0p2 до mmcblk0p8 в программе fdisk.
  2. Загрузите SystemRescueCD с USB-накопителя на вашем компьютере и попробуйте снова использовать GParted на SystemRescueCD.

Будьте осторожны при использовании обеих программ. Программа Fdisk не может перемещать разделы и данные внутри них. Не меняйте номер начального сектора загрузочного раздела на / dev / mmcblk0p6 и корневого раздела на / dev / mmcblk0p7 , иначе вы восстановите загрузку установленного Linux.

Если вы выберете первый способ, то вам необходимо запомнить всю информацию обо всех разделах в единицах секторов.Затем удалите раздел mmcblk0p2 . Не записывайте результат на этом этапе, fdisk не сразу применяет изменения. И если вы выйдете из fdisk или нажмете Ctrl + C, ничего не изменится. Затем создайте расширенный раздел mmcblk0p2 (нажмите n , затем нажмите e ) со старым номером начального сектора и новым номером последнего сектора. Затем воссоздайте другие логические разделы (нажмите n , затем нажмите l ) от / dev / mmcblk0p5 до / dev / mmcblk0p8 со старым запуском и номера конечных секторов. Измените типы разделов, нажав кнопку t . Проверьте (нажмите p ) все разделы будут иметь старые номера начального и конечного секторов и типы, за исключением номера конечного сектора расширенного раздела mmcblk0p2 . Если все в порядке, запишите изменения на диск, нажав кнопку w . Перезагрузите ваш сервер. Затем вы можете использовать GParted , чтобы переместить два последних раздела в конец диска и изменить размер корневого раздела.

Дополнения:

Если fdisk не хочет воссоздавать разделы, попробуйте использовать parted:

$ sudo parted /dev/mmcblk0
(parted) unit s
(parted) print                                                            
(parted) resizepart 2 -1s                                                 
(parted) print                                                            
(parted) quit                                                            
$ sudo partprobe /dev/mmcblk0
$ sudo gparted /dev/mmcblk0

Удачи! И будьте осторожны.

43
20.03.2018, 03:19
7 ответов

Добавление в собственный ответ ОП:

При настройке ssmtp вы также можете запретить или разрешить пользователям определять От кого, а также переопределить домен; вы можете сделать это по нескольким причинам, в том числе из-за того, что сообщение не попадает в папку «Спам».

Вы можете добавить в /etc/ssmtp/ssmtp.conf:

# Where will the mail seem to come from?
rewriteDomain=my_internet_domain.uk

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES

Обратите внимание, хотя YES можно использовать в домашней малине, это может быть нецелесообразно в многопользовательской системе из точки зрения безопасности.

8
20.08.2021, 11:40

Я использую sendEmail для отправки простых автоматических электронных писем через SMTP-сервер внешнего провайдера:

sendEmail -q -f "me@mail.com" -u "mySubject" -t "someone@mail.org" -s "my.smtp.com" -o tls=yes -xu "mySmtpUser" -xp "mySmtpPw" -m "myMessage"

Я передаю все в одной строке, поэтому выполнение этого в командной строке, скорее всего, покажет все параметры (включая smtp-пароль) всем пользователям. , если они запускают ps -ef, пока я выполняю команду. Я использую его в сценарии оболочки.

2
20.08.2021, 11:40

Самый простой ответ на отправку однострочных сообщений через gmail — использовать ssmtp


Установите его с помощью следующих команд:

sudo apt-get update
sudo apt-get install ssmtp

Отредактируйте /etc/ssmtp/ssmtp.conf, чтобы он выглядел следующим образом:

root=rpi3abc@gmail.com
mailhub=smtp.gmail.com:465
FromLineOverride=YES
AuthUser=rpi3abc@gmail.com
AuthPass=testing123
UseTLS=YES

Отправьте однострочник, например:

echo "Testing...1...2...3" | ssmtp myusername@gmail.com

или

printf "Subject: Test\n\nTesting...1...2...3" | ssmtp myusername@gmail.com

Затем, верно для *nix, вы просто получите подсказку обратно через несколько секунд.

Проверьте свой (скрытый) аккаунт, и вуаля, он там!


Это также хорошо работает при отправке файла, например:

cat program.py | ssmtp myotherusername@yahoo.com

И программа появится в почтовом ящике

Если файл является текстовым файлом, он может иметь первую строку, которая гласит Тема : xxxxxx

Это можно использовать с различными заданиями cron, которые могут отправлять мне данные со строками темы, указывающими содержимое.


Это будет работать со всем, что подготавливает сообщение, которое передается в ssmtp через стандартный ввод.


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

Отправка электронной почты из командной строки Raspberry Pi


Не забудьте также просмотреть ниже ответ, опубликованный Руи о блокировке адреса FROM:, который при необходимости может быть изменен в отформатированных файлах сообщений.


Если бы я только мог понять, как отправлять SMS таким же образом.

44
20.08.2021, 11:40

Что не так с "Почта"?

echo "Привет!" | mail -s "Важная почта" (скрыта)

"mail" является /etc/альтернативной ссылкой на /usr/bin/bsd-mailx из пакета bsd-mailx. Я считаю, что он там по умолчанию. Отличная утилита для отправки почты из cron-скриптов, например.

Работает также на Ubuntu и FreeBSD.

5
20.08.2021, 11:40

Я действительно неравнодушен к использованию mailx для этого:

echo "Message body." | mailx -s "Subject line" -a /path/attachment.txt -r "Sender's Name<sender@email.com>" -c recipient2@email.com recipient1@email.com
4
20.08.2021, 11:40

ssmtp— это всего лишь одна из многих обёрток Sendmail. Все они принимают сообщение на стандартный ввод и, возможно, список адресов в качестве аргументов строки команды -, и все они предлагают двоичный файл с именем sendmail, который реализует (по крайней мере основные функции )традиционного Команда Sendmail -строка API. Но, собственно говоря, это сообщение должно быть -правильно сформированным сообщением RFC822. Как минимум, он должен иметь заголовок Subject:.

ssmtp address@example.com <<<$'Subject: testing 1...2...3'

ssmtpsendmail— это просто символическая ссылка на ssmtp. Postfix, Exim и я полагаю, что любой другой MTA, который Provides: mail-transport-agentимеет аналогичную структуру, за исключением, конечно, sendmail, где двоичный файл sendmailявляется "настоящим".)

Чаще всего вы можете объединить простое сообщение электронной почты с документом здесь.

/usr/lib/sendmail -oi -t <<____HERE
Subject: testing
To: recipient@example.net

Here we interpolate the shell variable $result
____HERE

(Опция Sendmail -tговорит, что нужно брать список получателей из заголовков сообщения, которое вы получаете при стандартном вводе. Точный путь к Sendmail зависит от платформы.)

Другим распространенным вариантом является объединение вывода нескольких команд. Позаботьтесь о том, чтобы между заголовками и телом сообщения была пустая строка ("шея" ).

( printf "Subject: random number\n\n"
  dd if=/dev/urandom bs=4 count=1 2>/dev/null | od -D -An ) |
sendmail elsewhere@example.org

Для всего, кроме очень простых текстовых -только сообщений ASCII, вам необходимо понять, как составить правильное сообщение MIME, и в этот момент обычно имеет смысл использовать такой инструмент, как mutt. Некоторые платформы имеют mailили mailx, которые знают, как отправлять вложения и текст, отличный от -ASCII, но это не полностью переносимо.

Проблема здесь не в том, чтобы найти клиент, который может принять сообщение электронной почты и попытаться отправить его, а в том, чтобы настроить его для специфики Gmail.который требует, чтобы MTA знал имя пользователя и пароль для использования для удаленного сервера, чтобы иметь возможность использовать его в качестве исходящего смарт-хоста.

За кулисами большинство клиентов, таких как mutt, mailxи т. д., обычно просто запускают sendmailза кулисами, чтобы получить сообщение из системы.

9
20.08.2021, 11:40

Мой сервер — CEntOS 7, и на нем есть sendmail, но нет mailx и т. д. Вместо того, чтобы устанавливать новую программу, я протестировал ее непосредственно с помощью sendmail и обнаружил, что это работает:

echo -e "From: you@whatever\nTo: you@gmail.com\nSubject: this is the subject\n\nThis is the body,\nwith multiple lines." | sendmail -t

Для меня это самый простой способ отправить короткое электронное письмо, так как он не требует запуска или настройки сервера или демона и может быть выполнен в одной командной строке.

Идея состоит в том, что сообщение просто предупредит меня о том, что определенная программа выдала ошибку, не раскрывая никакой потенциально конфиденциальной информации, а затем я отправлюсь на сервер по SSH, чтобы проверить его журналы. Таким образом, вам не нужно беспокоиться о таких сложностях, как прикрепление файлов или шифрование транспорта.

Примечания:

  • -eприказывает эху интерпретировать '\n' и другие escape-символы.
  • -tуказывает sendmail получать адреса получателей из «Кому :» в заголовке сообщения.
  • Если почта не приходит, используйте tail /var/log/maillogдля просмотра сообщений об ошибках.
  • Если вы отправляете письма на свой адрес Gmail, установите фильтр в Gmail, чтобы они не попадали в папку нежелательной почты.
  • Этот sendmail на самом деле 'sendmail.postfix' (, что может быть нормальным ); здесь есть справочная страница
2
20.08.2021, 11:40

Теги

Похожие вопросы