Я думаю, что ответ Гудера превосходен, но имейте в виду, что все это требует, чтобы у пользователя уже было установлено что-то вроде GPG и доступен соответствующий ключ. Этот изнурительный процесс установки составляет около 95% препятствия для более широкого распространения шифрования электронной почты.
Вы уверены, что люди, которые заказали этот проект, понимают, что это не так просто, как переключить код в коде для отправки зашифрованных писем?
Одним из вариантов является включение в процесс установки вашей программы подпрограммы управления ключами, которая зависит (и включает) GPG. Затем пользователь может выбрать очень сложную фразу-пароль (убедитесь, что она выполняет проверки, чтобы она была как минимум буквенно-цифровой и т. Д.), Из этого может быть сгенерирован открытый ключ и загружен на популярные серверы ключей.
Сгенерированный ключ можно использовать для электронных писем, которые генерирует программа, и, что наиболее важно, ключ будет уникальным для каждого пользователя. Затем вы можете сделать обычный внешний вызов почтовому клиенту по умолчанию в операционной системе пользователя, чтобы открыть письмо.
Чтобы убедиться, что электронное письмо открыто в зашифрованном виде, я проверю среду и получу почтовый клиент по умолчанию, а затем отправлю электронное письмо из вашей программы с необходимыми флагами, необходимыми для шифрования сгенерированного электронного письма. Это означает, что для Enigmail Thunderbird он будет другим, например, для почты Apple.
Но не забудьте про OpenSSL, конечно ....