Python - конвертировать восемь 1 и 0 в один байт? [Дубликат]

Для тех, кто не хочет использовать внешние почтовые программы и хочет отправлять почту () на выделенный Linux-сервер.

Способ, как php-сообщения, описаны в php.ini в разделе [mail function] , Параметр sendmail-path описывает, как вызывается sendmail. Значение по умолчанию - sendmail -t -i, поэтому, если вы заработаете sendmail -t -i < message.txt в консоли linux, вы сделаете это. Вы также можете добавить mail.log для отладки и убедиться, что почта действительно вызвана.

Различные MTA могут реализовать sendmail, они просто делают символическую ссылку на свои двоичные файлы на это имя. Например, в debian default используется postfix. Настройте свой MTA для отправки почты и протестируйте ее с консоли с помощью sendmail -v -t -i < message.txt. Файл message.txt должен содержать все заголовки сообщения и тело, адресаты назначения для конверта будут взяты из заголовка To:. Пример:

From: myapp@example.com
To: mymail@example.com
Subject: Test mail via sendmail.

Text body.

Я предпочитаю использовать ssmtp как MTA, потому что он прост и не требует запуска демона с открытыми портами. ssmtp подходит только для отправки почты с локального хоста, он также может отправлять аутентифицированную электронную почту через вашу учетную запись в общедоступной почтовой службе. Установите ssmtp и отредактируйте конфигурацию /etc/ssmtp/ssmtp.conf. Чтобы иметь возможность также получать локальную системную почту для учетных записей unix (например, оповещения для root из заданий cron), настройте файл /etc/ssmtp/revaliases.

Вот моя конфигурация для моей учетной записи в почте Yandex:

root=mymail@example.com
mailhub=smtp.yandex.ru:465
FromLineOverride=YES
UseTLS=YES
AuthUser=abcde@yandex.ru
AuthPass=password
6
задан Thomas Gerot 22 March 2016 в 07:38
поделиться

1 ответ

Используйте функцию int с base в 2, чтобы читать двоичное значение как целое число.

n = int('01010101', 2)

Python 2 использует строки для обработки бинарные данные, поэтому вы должны использовать функцию chr() для преобразования целого в однобайтную строку.

data = chr(n)

Python 3 обрабатывает двоичный код и текст по-разному, поэтому вы необходимо использовать тип bytes . Это не имеет прямого эквивалента функции chr(), но конструктор bytes может принимать список байтовых значений. Мы помещаем n в массив из одного элемента и преобразуем его в объект bytes.

data = bytes([n])

После того, как у вас есть двоичная строка, вы можете открыть файл в двоичном режиме и записать данные в это так:

with open('out.bin', 'wb') as f:
    f.write(data)
9
ответ дан Mark Dickinson 22 August 2018 в 10:36
поделиться
Другие вопросы по тегам:

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