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");
|
||||
Poco::Logger& errorLog = Poco::Logger::get("errorLog");
|
||||
|
||||
createConsoleFileAsyncLogger("emailLog", log_Path + "emailLog.txt");
|
||||
|
||||
// *************** load from config ********************************************
|
||||
|
||||
std::string cfg_Path = Poco::Path::config() + "grd_login/";
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
model::Email* email = nullptr;
|
||||
@ -113,8 +133,19 @@ int EmailManager::ThreadFunction()
|
||||
mailClientSession.sendMessage(mailMessage);
|
||||
// add for debugging
|
||||
if (email->getUser()) {
|
||||
//printf("send email to %s\n", user_model->getEmail().data());
|
||||
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 {
|
||||
|
||||
@ -30,10 +30,7 @@ public:
|
||||
inline const std::string& getAdminReceiver() { return mEmailAccount.admin_receiver; }
|
||||
|
||||
//! \brief call delete on email after sending it
|
||||
inline void addEmail(model::Email* email) {
|
||||
if (mDisableEmail) { delete email; return; }
|
||||
mPendingEmails.push(email); condSignal();
|
||||
}
|
||||
void addEmail(model::Email* email);
|
||||
|
||||
protected:
|
||||
EmailManager();
|
||||
@ -49,6 +46,7 @@ protected:
|
||||
std::string url;
|
||||
int port;
|
||||
};
|
||||
Poco::Logger& mEmailLog;
|
||||
EmailAccount mEmailAccount;
|
||||
|
||||
bool mInitalized;
|
||||
|
||||
@ -348,4 +348,40 @@ Gradido Login-Server\n\
|
||||
}
|
||||
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);
|
||||
inline EmailType getType() { return mType; }
|
||||
static const char* emailTypeString(EmailType type);
|
||||
inline controller::User* getUser() { if (!mUser.isNull()) return mUser.get(); return nullptr; }
|
||||
|
||||
virtual bool draft(Net::MailMessage* mailMessage, LanguageCatalog* langCatalog);
|
||||
inline void addContent(Poco::Net::StringPartSource* str_content) { mAdditionalStringPartSrcs.push(str_content); }
|
||||
|
||||
|
||||
protected:
|
||||
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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user