Poco pára após SMTPClientSession.login

Eu comecei com a biblioteca do Poco e tentei criar um programa de e-mail (sobre o qual eu praticamente não sabia nada). O seguinte é o meu código (pode haver outros problemas com ele além do que eu encontrei até agora, mas eu comecei a trabalhar nele)

    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() << "-";
}

Quando eu entro no depurador, ele corre bem até chegar ao sess.login e de repente a pequena barra que representa se eu estou no código desaparece, mas o programa continua rodando (não tenho experiência suficiente para saber o que isso significa). Nenhuma das coisas que coloquei realmente imprime, o depurador apenas passa por essa linha, mas nada aparece. Depois de um tempo isso surge:

terminate called throwing an exception

Então o que está acontecendo?

questionAnswers(2)

yourAnswerToTheQuestion