mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
add logging every sended email and which email should be sended if email was enabled
This commit is contained in:
parent
5e83681bab
commit
c74f27b458
@ -130,6 +130,8 @@ int Gradido_LoginServer::main(const std::vector<std::string>& args)
|
|||||||
createConsoleFileAsyncLogger("errorLog", log_Path + "errorLog.txt");
|
createConsoleFileAsyncLogger("errorLog", log_Path + "errorLog.txt");
|
||||||
Poco::Logger& errorLog = Poco::Logger::get("errorLog");
|
Poco::Logger& errorLog = Poco::Logger::get("errorLog");
|
||||||
|
|
||||||
|
createConsoleFileAsyncLogger("emailLog", log_Path + "emailLog.txt");
|
||||||
|
|
||||||
// *************** load from config ********************************************
|
// *************** load from config ********************************************
|
||||||
|
|
||||||
std::string cfg_Path = Poco::Path::config() + "grd_login/";
|
std::string cfg_Path = Poco::Path::config() + "grd_login/";
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
|
|
||||||
EmailManager::EmailManager()
|
EmailManager::EmailManager()
|
||||||
: Thread("emails", false), mInitalized(false), mDisableEmail(false)
|
: Thread("emails", false), mEmailLog(Poco::Logger::get("emailLog")), mInitalized(false), mDisableEmail(false)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
@ -55,6 +55,26 @@ bool EmailManager::init(const Poco::Util::LayeredConfiguration& cfg)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EmailManager::addEmail(model::Email* email) {
|
||||||
|
if (mDisableEmail) {
|
||||||
|
std::string log_message = "Email should be sended to: ";
|
||||||
|
auto email_user = email->getUser();
|
||||||
|
if (email_user && email_user->getModel()) {
|
||||||
|
log_message += email_user->getModel()->getNameWithEmailHtml();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
log_message += "<missing>";
|
||||||
|
}
|
||||||
|
log_message += ", type: ";
|
||||||
|
log_message += model::Email::emailTypeString(email->getType());
|
||||||
|
mEmailLog.log(log_message);
|
||||||
|
delete email;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mPendingEmails.push(email);
|
||||||
|
condSignal();
|
||||||
|
}
|
||||||
|
|
||||||
void EmailManager::exit()
|
void EmailManager::exit()
|
||||||
{
|
{
|
||||||
model::Email* email = nullptr;
|
model::Email* email = nullptr;
|
||||||
@ -113,8 +133,19 @@ int EmailManager::ThreadFunction()
|
|||||||
mailClientSession.sendMessage(mailMessage);
|
mailClientSession.sendMessage(mailMessage);
|
||||||
// add for debugging
|
// add for debugging
|
||||||
if (email->getUser()) {
|
if (email->getUser()) {
|
||||||
|
//printf("send email to %s\n", user_model->getEmail().data());
|
||||||
auto user_model = email->getUser()->getModel();
|
auto user_model = email->getUser()->getModel();
|
||||||
printf("send email to %s\n", user_model->getEmail().data());
|
std::string log_message = "Email sended to: ";
|
||||||
|
auto email_user = email->getUser();
|
||||||
|
if (user_model) {
|
||||||
|
log_message += email_user->getModel()->getNameWithEmailHtml();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
log_message += "<missing>";
|
||||||
|
}
|
||||||
|
log_message += ", type: ";
|
||||||
|
log_message += model::Email::emailTypeString(email->getType());
|
||||||
|
mEmailLog.log(log_message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -30,10 +30,7 @@ public:
|
|||||||
inline const std::string& getAdminReceiver() { return mEmailAccount.admin_receiver; }
|
inline const std::string& getAdminReceiver() { return mEmailAccount.admin_receiver; }
|
||||||
|
|
||||||
//! \brief call delete on email after sending it
|
//! \brief call delete on email after sending it
|
||||||
inline void addEmail(model::Email* email) {
|
void addEmail(model::Email* email);
|
||||||
if (mDisableEmail) { delete email; return; }
|
|
||||||
mPendingEmails.push(email); condSignal();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
EmailManager();
|
EmailManager();
|
||||||
@ -49,6 +46,7 @@ protected:
|
|||||||
std::string url;
|
std::string url;
|
||||||
int port;
|
int port;
|
||||||
};
|
};
|
||||||
|
Poco::Logger& mEmailLog;
|
||||||
EmailAccount mEmailAccount;
|
EmailAccount mEmailAccount;
|
||||||
|
|
||||||
bool mInitalized;
|
bool mInitalized;
|
||||||
|
|||||||
@ -348,4 +348,40 @@ Gradido Login-Server\n\
|
|||||||
}
|
}
|
||||||
return (EmailType)type;
|
return (EmailType)type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
EMAIL_DEFAULT,
|
||||||
|
EMAIL_ERROR,
|
||||||
|
EMAIL_USER_VERIFICATION_CODE,
|
||||||
|
EMAIL_USER_VERIFICATION_CODE_RESEND,
|
||||||
|
EMAIL_USER_VERIFICATION_CODE_RESEND_AFTER_LONG_TIME,
|
||||||
|
EMAIL_ADMIN_USER_VERIFICATION_CODE,
|
||||||
|
EMAIL_ADMIN_USER_VERIFICATION_CODE_RESEND,
|
||||||
|
EMAIL_USER_RESET_PASSWORD,
|
||||||
|
EMAIL_ADMIN_RESET_PASSWORD_REQUEST_WITHOUT_MEMORIZED_PASSPHRASE,
|
||||||
|
EMAIL_NOTIFICATION_TRANSACTION_CREATION,
|
||||||
|
EMAIL_NOTIFICATION_TRANSACTION_TRANSFER,
|
||||||
|
EMAIL_USER_REGISTER_OLD_ELOPAGE,
|
||||||
|
EMAIL_MAX
|
||||||
|
*/
|
||||||
|
const char* Email::emailTypeString(EmailType type)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case EMAIL_DEFAULT: return "default";
|
||||||
|
case EMAIL_ERROR: return "error";
|
||||||
|
case EMAIL_USER_VERIFICATION_CODE: return "email user verification code";
|
||||||
|
case EMAIL_USER_VERIFICATION_CODE_RESEND: return "email user verification code resend";
|
||||||
|
case EMAIL_USER_VERIFICATION_CODE_RESEND_AFTER_LONG_TIME: return "email user verification code resend after long time";
|
||||||
|
case EMAIL_ADMIN_USER_VERIFICATION_CODE: return "email admin user verification code";
|
||||||
|
case EMAIL_ADMIN_USER_VERIFICATION_CODE_RESEND: return "email admin user verification code resend";
|
||||||
|
case EMAIL_USER_RESET_PASSWORD: return "user reset Password";
|
||||||
|
case EMAIL_ADMIN_RESET_PASSWORD_REQUEST_WITHOUT_MEMORIZED_PASSPHRASE: return "user reset password without memorized passphrase";
|
||||||
|
case EMAIL_NOTIFICATION_TRANSACTION_CREATION: return "email notification transaction creation";
|
||||||
|
case EMAIL_NOTIFICATION_TRANSACTION_TRANSFER: return "email notification transaction transfer";
|
||||||
|
case EMAIL_USER_REGISTER_OLD_ELOPAGE: return "user register automatic throw elopage";
|
||||||
|
case EMAIL_MAX: return "<last entry, invalid>";
|
||||||
|
|
||||||
|
}
|
||||||
|
return "<unknown>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -50,11 +50,13 @@ namespace model {
|
|||||||
|
|
||||||
static EmailType convertTypeFromInt(int type);
|
static EmailType convertTypeFromInt(int type);
|
||||||
inline EmailType getType() { return mType; }
|
inline EmailType getType() { return mType; }
|
||||||
|
static const char* emailTypeString(EmailType type);
|
||||||
inline controller::User* getUser() { if (!mUser.isNull()) return mUser.get(); return nullptr; }
|
inline controller::User* getUser() { if (!mUser.isNull()) return mUser.get(); return nullptr; }
|
||||||
|
|
||||||
virtual bool draft(Net::MailMessage* mailMessage, LanguageCatalog* langCatalog);
|
virtual bool draft(Net::MailMessage* mailMessage, LanguageCatalog* langCatalog);
|
||||||
inline void addContent(Poco::Net::StringPartSource* str_content) { mAdditionalStringPartSrcs.push(str_content); }
|
inline void addContent(Poco::Net::StringPartSource* str_content) { mAdditionalStringPartSrcs.push(str_content); }
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::string replaceUserNamesAndLink(const char* src, const std::string& first_name, const std::string& last_name, const std::string& link);
|
std::string replaceUserNamesAndLink(const char* src, const std::string& first_name, const std::string& last_name, const std::string& link);
|
||||||
std::string replaceEmail(const char* src, const std::string& email);
|
std::string replaceEmail(const char* src, const std::string& email);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user