Poco se detiene después de SMTPClientSession.login

Acabo de comenzar con la biblioteca Poco y traté de crear un programa de correo electrónico (del cual no sabía prácticamente nada). El siguiente es mi código (puede haber otros problemas con él además del que he encontrado hasta ahora, pero recién comencé a trabajar en él)

    int main(int argc, char** argv)
{
    Poco::Net::SocketAddress add("smtp.gmail.com:465");
    Poco::Net::StreamSocket sock(add);
    Poco::Net::SMTPClientSession sess(sock);
    std::cout << "-";
    sess.login(
            "gmail.com",
            Poco::Net::SMTPClientSession::AUTH_LOGIN,
            "----",
            "----"
    );
    Poco::Net::MailMessage msg;
    Poco::Net::MailRecipient resp(Poco::Net::MailRecipient::PRIMARY_RECIPIENT,"[email protected]");
    msg.addRecipient(resp);
    std::string content("HELP SOS");
    msg.encodeWord(content);
    std::cout << msg.getContent() << "-";
}

Cuando entro en el depurador, funciona bien hasta que llega a sess.login, luego, de repente, la pequeña barra que representa donde estoy en el código desaparece pero el programa sigue funcionando (no tengo la experiencia suficiente para saber qué significa eso). Ninguna de las cosas de cout que puse en realidad se imprime, el depurador simplemente pasa esa línea pero no aparece nada. Después de un rato esto surge:

terminate called throwing an exception

Entonces, ¿qué está pasando?

Respuestas a la pregunta(2)

Su respuesta a la pregunta