Commit 78055716 authored by jan.koester's avatar jan.koester
Browse files

smtp have now api

parent 47cb9a09
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -7,4 +7,4 @@ add_subdirectory(navbar)
add_subdirectory(media)
add_subdirectory(nginxfiler)
add_subdirectory(template)
add_subdirectory(contact)
#add_subdirectory(contact)
+0 −21
Original line number Diff line number Diff line
configure_file(CMakeLists.txt.in smtpclientlibrary-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
  RESULT_VARIABLE result
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-download )
if(result)
  message(FATAL_ERROR "CMake step for smtpclientlibrary failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
  RESULT_VARIABLE result
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-download )
if(result)
  message(FATAL_ERROR "Build step for smtpclientlibrary failed: ${result}")
endif()

add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-src
                 ${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-build
                 EXCLUDE_FROM_ALL)

add_library(contact SHARED contact.cpp)

target_include_directories(contact PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-src/src")

target_link_libraries(contact PRIVATE smtpclient)
target_link_libraries(contact PUBLIC dl blogidev)

install (TARGETS contact DESTINATION lib/blogi/plugins)
+3 −30
Original line number Diff line number Diff line
@@ -30,9 +30,6 @@
#include <iostream>
#include <algorithm>

#include <cpp/opportunisticsecuresmtpclient.hpp>
#include <cpp/plaintextmessage.hpp>

#include <htmlpp/html.h>
#include <htmlpp/exception.h>

@@ -44,17 +41,13 @@
#include <conf.h>
#include <plugin.h>
#include <session.h>
#include <mail.h>

namespace blogi {
    class Contact : public PluginApi{
    public:

        void initPlugin(){
            _SHost=Args->config->getValue(Args->config->getKey("/BLOGI/CONTACT/SMTPADDR"),0);
            _SPort=Args->config->getIntValue(Args->config->getKey("/BLOGI/CONTACT/SMTPPORT"),0);
            _SUser=Args->config->getValue(Args->config->getKey("/BLOGI/CONTACT/SMTPUSER"),0);
            _SPass=Args->config->getValue(Args->config->getKey("/BLOGI/CONTACT/SMTPPASS"),0);
            _Sender=Args->config->getValue(Args->config->getKey("/BLOGI/CONTACT/SENDER"),0);
            _Receiver=Args->config->getValue(Args->config->getKey("/BLOGI/CONTACT/RECEIVER"),0);
            std::cout << "contact plugin loaded" <<std::endl;
        }
@@ -88,27 +81,8 @@ namespace blogi {
                subject+=name;
                subject+=") ";
                subject+=mail;
                sendMail(Args->smtp,_Receiver.c_str(),subject.c_str(),message);

                jed_utils::OpportunisticSecureSMTPClient client(_SHost.c_str(),_SPort);
                client.setCredentials(jed_utils::Credential(_SUser.c_str(),_SPass.c_str()));
                try	{
                    jed_utils::PlaintextMessage msg(jed_utils::MessageAddress(_Sender.c_str(), "Blogi Contact Form"),
                                                    { jed_utils::MessageAddress(_Receiver.c_str()) },
                                                    subject.c_str(),
                                                    message.data());

                    int err_no = client.sendMail(msg);
                    if (err_no != 0) {
                        std::cerr << client.getCommunicationLog() << '\n';
                        std::string errorMessage = client.getErrorMessage(err_no);
                        std::cerr << "An error occurred: " << errorMessage
                        << " (error no: " << err_no << ")" << '\n';
                        return 1;
                    }
                }
                catch (std::invalid_argument &err) {
                    std::cerr << err.what() << std::endl;
                }
            }
            libhtmlpp::HtmlString cform,out;

@@ -143,8 +117,7 @@ namespace blogi {
            return "Jan Koester";
        }
    private:
        std::string _SHost,_SUser,_SPass,_Sender,_Receiver;
        int _SPort;
        std::string _Receiver;
    };
};

+29 −3
Original line number Diff line number Diff line
find_path(LIBUUID_INCLUDE_DIR uuid.h PATH_SUFFIXES uuid)
find_library(LIBUUID_LIBRARY libuuid.so)

include_directories(${LIBUUID_INCLUDE_DIR})
configure_file(CMakeLists.txt.in smtpclientlibrary-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
  RESULT_VARIABLE result
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-download )
if(result)
  message(FATAL_ERROR "CMake step for smtpclientlibrary failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
  RESULT_VARIABLE result
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-download )
if(result)
  message(FATAL_ERROR "Build step for smtpclientlibrary failed: ${result}")
endif()

add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-src
                 ${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-build
                 EXCLUDE_FROM_ALL)



add_definitions(
    -DSQLITE_THREADSAFE=2
)

add_library(blogidev STATIC
    mail.cpp
    session.cpp
    auth.cpp
    database.cpp
@@ -16,17 +35,19 @@ add_library(blogidev STATIC
    theme.cpp
    editor.cpp
    cookie.cpp
    mail.cpp
    database/pgsql.cpp
    database/sqlite.cpp
)

target_link_libraries(blogidev
target_include_directories(blogidev PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/smtpclientlibrary-src/src" ${LIBUUID_INCLUDE_DIR})

target_link_libraries(blogidev PUBLIC
    htmlpp::htmlpp
    httppp::httppp
    netplus::netplus
    Upstream::secureid
    cmdplus::cmdplus
    ${LIBUUID_LIBRARY}
    ${PostgreSQL_LIBRARIES}
    ${SQLite3_LIBRARIES}
    ${OPENLDAP_LIBRARIES}
@@ -34,6 +55,11 @@ target_link_libraries(blogidev
    Upstream::confplus
)

target_link_libraries(blogidev PRIVATE
    smtpclient
    ${LIBUUID_LIBRARY}
)

target_compile_options(blogidev PUBLIC "-fPIC")

install(TARGETS blogidev DESTINATION lib/blogi)
Loading