Для тех, кто не хочет использовать внешние почтовые программы и хочет отправлять почту () на выделенный 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
Используйте функцию 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)
bytearray([n])
. См. doc . – ford 29 January 2014 в 17:14