Я очень новичок в серверах электронной почты и отправке электронной почты с помощью PHP …
Возможно ли отправить электронную почту с PHP-скрипта на моем сервере, зашифрованном с использованием SSL или TLS, до того, как он будет отправлен на почтовый сервер получателя?
Мне нужно, чтобы только предполагаемый получатель мог прочитать письмо, в случае, если передача перехвачена при его переходе на свой почтовый сервер.
Я не уверен, что это возможно, так как почтовый сервер получателя не знает права на открытый ключ? Итак, как он может расшифровать электронную почту?
В качестве фона я фактически не принимаю учетные записи электронной почты для всех – так это не случай, когда пользователи аутентифицируются на моем сервере и загружают электронные письма для них, размещенных там. У меня просто есть сценарий, запускающий оповещение по электронной почте, которое отправляется с «notifications@danbaylis.com» (который не является настоящим адресом электронной почты на сервере, поэтому вы не можете ответить на него) на реальный адрес электронной почты пользователя (что мое приложение знает). Мне нужно, чтобы это электронное письмо было надежно отправлено с PHP на моем сервере, на почтовый сервер получателей.
Я посмотрел на функцию mail () в PHP, а также на класс PHPMailer, но я не уверен, как настроить любой из этих методов для безопасного отправки электронной почты.
Все мои исследования показывают, как установить SSL на моем сервере, чтобы пользователи могли безопасно загружать электронную почту, хранящуюся на моем сервере, – это не то, что я пытаюсь сделать здесь.
Я запускаю Centos5.7, который, как я полагаю, установлен на почтовом сервере, хотя я не уверен, что по умолчанию это использует PHP.
Спасибо за любую помощь!
Тип шифрования, который вы ищете, не SSL / TSL, который используется для шифрования передачи между клиентом (PHP) и SMTP-сервером, который будет отправлять его. SSL / TLS не гарантирует, что данные будут зашифрованы до конечной точки. Фактически, это почти наверняка не будет, поскольку данные передаются между SMTP-серверами и коммутаторами на этом пути.
Вместо этого вы ищете шифрование PGP, которое может быть реализовано на PHP с использованием функций GnuPG . Вы должны зашифровать сообщение, используя открытый ключ вашего получателя. Затем его можно дешифровать и читать с помощью закрытого ключа получателя, который хранится только получателем.
Чтобы реализовать это в mail()
, вы должны сначала зашифровать тело сообщения, а затем передать зашифрованный блокированный блок ascii в mail()
качестве третьего параметра. Заголовки сообщений не будут зашифрованы, а только тело.
добавление
Способ обеспечения безопасной передачи сообщений большинством банков и медицинских услуг (в США, во всяком случае) не должен отправлять электронную почту вообще. Вместо этого сообщения, которые должны храниться в безопасности, сохраняются в папке «Входящие» пользователя с веб-сайтом. Пользователь должен войти (через SSL) на веб-сайт, чтобы читать сообщения в безопасном почтовом ящике. Электронная почта отправляется только для уведомления пользователя о появлении новых сообщений.
Вы не можете гарантировать, что электронное письмо будет доставлено в почтовый ящик получателя. Единственное место, где вы находитесь, – это связь между вашим почтовым клиентом и вашим исходящим SMTP-сервером. После этого это совершенно из ваших рук.
Если вам необходимо гарантировать конфиденциальность по электронной почте, вам придется зашифровать тело письма. Вы хотите получить сообщение S / MIME или PGP. Не то, чтобы это все еще оставило НЕУСТОЙНУЮ информацию общедоступной – тело письма будет зашифровано, но адресация информации будет по-прежнему доступна для чтения – промежуточным почтовым серверам по-прежнему необходимо знать, как доставить почту