Неполная установка библиотек POCO C ++

Недавно я начал использовать библиотеки POCO C ++ для создания простого почтового клиента, и мне нужно было использовать класс SecureSMTPClientSession, но отчеты компилятора

Poco/Net/SecureSMTPClientSession.h: No such file or directory

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

Мои шаги установки следовали INSTALL инструкциям

./configure
make
make install

Так есть ли способ установить библиотеку NETSSL_OPENSSL вручную?

Пожалуйста, если кто-нибудь знал, что написать шаги.

Спасибо.

0
задан 17 May 2015 в 19:21

2 ответа

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

На основе этого сайта: [ http://axistasoft.com/blog/poco/poco-net/item/sending-email-messages-using-poco-securestreamsocket-securesmtpclientsession-class ] я думаю, что мне удалось создать код для отправки SMTP по SSL (я не мог протестировать его, потому что я понял, что сервером SMTP НЕ является SSL, вызванный, в то время как системный администратор сказал мне, что это...)

Так код:

#include <Poco/Crypto/OpenSSLInitializer.h>
#include <Poco/Net/MailMessage.h>
#include <Poco/Net/MailRecipient.h>
#include <Poco/Net/SecureStreamSocket.h>
#include <Poco/Net/SMTPClientSession.h>
#include <Poco/Net/NetException.h>
#include <Poco/Net/Context.h>
#include <Poco/Net/SSLManager.h>
#include <Poco/Net/AcceptCertificateHandler.h>
#include <Poco/AutoPtr.h>

void sendMail() {
    using Poco::Net::MailMessage;
    using Poco::Net::MailRecipient;
    using Poco::Net::InvalidCertificateHandler;
    using Poco::Net::AcceptCertificateHandler;
    using Poco::Net::Context;
    using Poco::Net::SSLManager;
    using Poco::Net::SocketAddress;
    using Poco::Net::SecureStreamSocket;
    using Poco::Net::StreamSocket;
    using Poco::Net::SMTPClientSession;
    using Poco::Net::SMTPException;
    using Poco::Net::NetException;
    using Poco::Crypto::OpenSSLInitializer;
    using Poco::SharedPtr;

    std::string host = "smtp_host.com";
    int port = 465;
    std::string user = "smtp-user";
    std::string password = "smtp-password";
    std::string to = "email-recipient@example.com";
    std::string from = "email-sender@example.com";
    std::string subject = "This is the subject";
    subject = Poco::Net::MailMessage::encodeWord(subject, "UTF-8");
    std::string content = "This is the message body";

    MailMessage message;
    message.setSender(from);
    message.addRecipient(MailRecipient(MailRecipient::PRIMARY_RECIPIENT, to));
    message.setSubject(subject);
    message.setContentType("text/plain; charset=UTF-8");
    message.setContent(content, MailMessage::ENCODING_8BIT);

    try {
        OpenSSLInitializer::initialize();
        SharedPtr<InvalidCertificateHandler> ptrHandler = new AcceptCertificateHandler(false);
        Context::Ptr ptrContext = new Context(Context::CLIENT_USE, "", "", "", Context::VERIFY_RELAXED, 9, true, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");
        SSLManager::instance().initializeClient(0, ptrHandler, ptrContext);

        SocketAddress sa(host, port);
        SecureStreamSocket socket(sa);
        SMTPClientSession session(socket);

        try {
            session.login(SMTPClientSession::AUTH_LOGIN, user, password);
            session.sendMessage(message);
            session.close();
            OpenSSLInitializer::uninitialize();
        } catch (SMTPException &e) {
            _errorOccurred(e.displayText());
            session.close();
            OpenSSLInitializer::uninitialize();
            return;
        }
    } catch (NetException &e) {
        _errorOccurred(e.displayText());
        return;
    }
}

я надеюсь, что можно использовать его :) Давайте отправим объятия и поцелуи в http://axistasoft.com в Сингапур :)

Удачи! ;)

0
ответ дан 18 May 2015 в 05:21
  • 1
    На самом деле я установил 18.04 только вчера, и я снова сталкивался с проблемами Wi-Fi в it' s новая установка также. Что касается маршрутизатора я изменил шифрование на Wpa2-aes. Канал к 1 и пропускная способность к 20M. Также я установил регулирующий домен, как Вы сказали. Но тем не менее я приводил ошибочное Соединение к сбою на человечности 18.04 также. – john400 29 June 2018 в 17:37

Из ссылки https://pocoproject.org/releases/poco-1.7.6/загружают poco-1.7.6-all.zip нет poco-1.7.6.zip потому что poco-1.7.6-all.zip будет иметь все компоненты в то время как poco-1.7.6.zip не содержит все компоненты.

SecureSMTPClientSession.h хорошо присутствует в poco-1.7.6-all.zip.

0
ответ дан 18 May 2015 в 05:21
  • 1
    На самом деле я думаю, что нет никакой проблемы с моими установками маршрутизатора, потому что я использую свой сотовый телефон с тем соединением также. Я думал, существует ли ошибка в 16,04, она, возможно, трахнулась в 18,04, но я don' t знают, что сделать теперь. Помогите мне? Я don' t хотят вернуться назад к Windows после такого большого количества времени. – john400 29 June 2018 в 17:42

Другие вопросы по тегам:

Похожие вопросы: