summaryrefslogtreecommitdiff
path: root/src/mail.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mail.cpp')
-rw-r--r--src/mail.cpp37
1 files changed, 26 insertions, 11 deletions
diff --git a/src/mail.cpp b/src/mail.cpp
index aaf564bc6..0a9273ebc 100644
--- a/src/mail.cpp
+++ b/src/mail.cpp
@@ -53,24 +53,39 @@ void MailThread::Run()
bool Mail(User *u, NickCore *nc, const BotInfo *service, const Anope::string &subject, const Anope::string &message)
{
- if (!u || !nc || !service || subject.empty() || message.empty())
+ if (!nc || !service || subject.empty() || message.empty())
return false;
-
- if (!Config->UseMail)
- u->SendMessage(service, _("Services have been configured to not send mail."));
- else if (Anope::CurTime - u->lastmail < Config->MailDelay)
- u->SendMessage(service, _("Please wait \002%d\002 seconds and retry."), Config->MailDelay - (Anope::CurTime - u->lastmail));
- else if (nc->email.empty())
- u->SendMessage(service, _("E-mail for \002%s\002 is invalid."), nc->display.c_str());
- else
+
+ if (!u)
{
- u->lastmail = nc->lastmail = Anope::CurTime;
+ if (!Config->UseMail)
+ return false;
+ else if (nc->email.empty())
+ return false;
+
+ nc->lastmail = Anope::CurTime;
Thread *t = new MailThread(nc->display, nc->email, subject, message);
t->Start();
return true;
}
+ else
+ {
+ if (!Config->UseMail)
+ u->SendMessage(service, _("Services have been configured to not send mail."));
+ else if (Anope::CurTime - u->lastmail < Config->MailDelay)
+ u->SendMessage(service, _("Please wait \002%d\002 seconds and retry."), Config->MailDelay - (Anope::CurTime - u->lastmail));
+ else if (nc->email.empty())
+ u->SendMessage(service, _("E-mail for \002%s\002 is invalid."), nc->display.c_str());
+ else
+ {
+ u->lastmail = nc->lastmail = Anope::CurTime;
+ Thread *t = new MailThread(nc->display, nc->email, subject, message);
+ t->Start();
+ return true;
+ }
- return false;
+ return false;
+ }
}
bool Mail(NickCore *nc, const Anope::string &subject, const Anope::string &message)