Подключитесь к серверу smtp с помощью сертификата клиента (без пароля) из php-скрипта и отправьте письмо

Мне нужно реализовать скрипт для отправки писем от имени существующего почтового сервера.
Сервер электронной почты поддерживает только один способ аутентификации — «Аутентификация сертификата клиента». У меня есть только адрес электронной почты и сертификат для аутентификации через мой php-скрипт (без пароля) и отправки электронных писем. и это единственное, что я знаю о сервере :(.

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

Могут ли какие-то приятельские просьбы указать мне правильное направление?

0

Решение

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

Я предлагаю эти изменения для обычного соединения PHPMailer SMTP + STARTTLS:

$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->SMTPAuth = false;
$mail->SMTPOptions = [
'ssl' => [
'verify_peer'  => true,
'local_cert' => '/path/to/client_cert_and_key.pem'
]
];

Локальный файл сертификата должен содержать как личный ключ клиента, так и сертификат в формате PEM.

смотреть на этот пример для более полного кода, который использует параметры контекста потока SSL.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]