Можно ли отправить какой-то пинг на SMTP-сервер, чтобы проверить, открыто ли соединение и готово ли оно к отправке почты
Соединение является активным, и вы хотите проверить, закрыто ли соединение / время ожидания истекло.
Или можно отправить команду без операции, чтобы поддерживать соединение?
NOOP
хорошо, но RSET
лучше перед отправкой новой транзакции (отправка нового письма) ИМХО.
Тем не мение sendmail
использует RSET
для проверки SMTP-соединений, полученных из кеша соединений.
Очень быстрый просмотр RFC показывает команда SMTP NOOP.
This command does not affect any parameters or previously entered commands. It specifies no action other than that the receiver send a "250 OK" reply. This command has no effect on the reverse-path buffer, the forward- path buffer, or the mail data buffer, and it may be issued at any time. If a parameter string is specified, servers SHOULD ignore it.