1

Это немного сложно, поэтому я объясню, что я на самом деле пытаюсь сделать здесь: у меня есть сервер Debian, и я хочу автоматически отправлять себе определенные журналы каждую неделю. Я собираюсь использовать cron и bash-скрипт для копирования логов в тарбол вскоре после полуночи каждый понедельник. Затем сценарий bash на моем домашнем компьютере загрузит архив с сервера вместе с файлом, который будет использоваться в качестве тела письма, и вызовет AppleScript для создания нового сообщения электронной почты.

Вот где я застрял - я не могу найти способ зашифровать и подписать письмо, используя AppleScript и почтовый клиент Apple. Я заметил, что если я отправлю задержку перед отправкой сообщения, Mail автоматически установит шифрование и подпись (как обычно, когда я сам пишу сообщение). Однако во время выполнения сценария невозможно быть уверенным в этом - если что-то пойдет не так, сценарий просто слепо отправит письмо в незашифрованном виде.

Моим решением было бы как-то вручную создать файл .p7m с архивом и сообщением и прикрепить его к электронному письму, которое создает AppleScript. Затем, когда я получу его, Mail будет обрабатывать его так же, как любое другое зашифрованное сообщение с вложением (верно?)

Если есть лучший способ сделать это, пожалуйста, дайте мне знать. ^^ (В идеале все должно быть сделано с сервера, но, похоже, не существует способа автоматической отправки почты без сохранения пароля в открытом тексте.)

(На сервере работает Debian squeeze; мой домашний компьютер - Mac с OS X Lion.)

1 ответ1

1

Самый простой подход к отправке найденного мною S/MIME-сообщения электронной почты с помощью openssl.

Например, для начала, если ваше сообщение было в файле msg.body:

openssl smime -encrypt -aes256 -out "msg.body.enc" "certificate.pem" <"msg.body" 2>"encryption.error"
sendmail -G -i recipient@somewhere.net <"msg.body.enc"

В приведенном выше примере открытый сертификат S/MIME отправителя должен быть доступен в certificate.pem .

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .