diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-10-07 23:03:56 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-10-09 13:44:59 +0100 |
| commit | bcf01bddc54da34425c727ed67f51cb946546ba6 (patch) | |
| tree | 96c8a23f0fb5e760c7577d974304fba86dafca97 /src/lib/cinema_kdms.cc | |
| parent | dd7ba98abf729061e30c0b0fbb4cb6fd0485f16a (diff) | |
Replace quickmail with a direct (and asynchronous) libcurl email sender.
Diffstat (limited to 'src/lib/cinema_kdms.cc')
| -rw-r--r-- | src/lib/cinema_kdms.cc | 59 |
1 files changed, 16 insertions, 43 deletions
diff --git a/src/lib/cinema_kdms.cc b/src/lib/cinema_kdms.cc index 966955ab4..9b839a354 100644 --- a/src/lib/cinema_kdms.cc +++ b/src/lib/cinema_kdms.cc @@ -17,13 +17,13 @@ */ -#include "quickmail.h" #include "exceptions.h" #include "cinema_kdms.h" #include "cinema.h" #include "screen.h" #include "config.h" #include "util.h" +#include "emailer.h" #include "compose.hpp" #include <zip.h> #include <boost/foreach.hpp> @@ -31,6 +31,7 @@ #include "i18n.h" using std::list; +using std::cout; using std::string; using boost::shared_ptr; @@ -117,8 +118,10 @@ CinemaKDMs::write_zip_files (string filename_first_part, list<CinemaKDMs> cinema /* XXX: should probably get from/to from the KDMs themselves */ void -CinemaKDMs::email (string filename_first_part, string cpl_name, list<CinemaKDMs> cinema_kdms, dcp::LocalTime from, dcp::LocalTime to) +CinemaKDMs::email (string filename_first_part, string cpl_name, list<CinemaKDMs> cinema_kdms, dcp::LocalTime from, dcp::LocalTime to, shared_ptr<Job> job) { + Config* config = Config::instance (); + BOOST_FOREACH (CinemaKDMs const & i, cinema_kdms) { boost::filesystem::path zip_file = boost::filesystem::temp_directory_path (); @@ -127,29 +130,17 @@ CinemaKDMs::email (string filename_first_part, string cpl_name, list<CinemaKDMs> /* Send email */ - quickmail_initialize (); - + string subject = config->kdm_subject(); SafeStringStream start; start << from.date() << " " << from.time_of_day(); SafeStringStream end; end << to.date() << " " << to.time_of_day(); - - string subject = Config::instance()->kdm_subject(); boost::algorithm::replace_all (subject, "$CPL_NAME", cpl_name); boost::algorithm::replace_all (subject, "$START_TIME", start.str ()); boost::algorithm::replace_all (subject, "$END_TIME", end.str ()); boost::algorithm::replace_all (subject, "$CINEMA_NAME", i.cinema->name); - quickmail mail = quickmail_create (Config::instance()->kdm_from().c_str(), subject.c_str ()); - quickmail_add_to (mail, i.cinema->email.c_str ()); - if (!Config::instance()->kdm_cc().empty ()) { - quickmail_add_cc (mail, Config::instance()->kdm_cc().c_str ()); - } - if (!Config::instance()->kdm_bcc().empty ()) { - quickmail_add_bcc (mail, Config::instance()->kdm_bcc().c_str ()); - } - - string body = Config::instance()->kdm_email().c_str(); + string body = config->kdm_email().c_str(); boost::algorithm::replace_all (body, "$CPL_NAME", cpl_name); boost::algorithm::replace_all (body, "$START_TIME", start.str ()); boost::algorithm::replace_all (body, "$END_TIME", end.str ()); @@ -161,34 +152,16 @@ CinemaKDMs::email (string filename_first_part, string cpl_name, list<CinemaKDMs> } boost::algorithm::replace_all (body, "$SCREENS", screens.str().substr (0, screens.str().length() - 2)); - quickmail_set_body (mail, body.c_str()); - quickmail_add_attachment_file (mail, zip_file.string().c_str(), "application/zip"); - - char const* e = quickmail_send ( - mail, - Config::instance()->mail_server().c_str(), - Config::instance()->mail_port(), - Config::instance()->mail_user().c_str(), - Config::instance()->mail_password().c_str() - ); + Emailer email (config->kdm_from(), i.cinema->email, subject, body); - if (e) { - quickmail_destroy (mail); - - string error (e); - - if (Config::instance()->mail_server().empty ()) { - error = _("no mail server set up in preferences"); - } - - throw KDMError ( - String::compose ( - _("Failed to send KDM email to %1 (%2)"), - i.cinema->email, - error - ) - ); + if (!config->kdm_cc().empty ()) { + email.add_cc (config->kdm_cc ()); + } + if (!config->kdm_bcc().empty ()) { + email.add_bcc (config->kdm_bcc ()); } - quickmail_destroy (mail); + + email.add_attachment (zip_file, "application/zip"); + email.send (job); } } |
