#include <list>
#include <boost/shared_ptr.hpp>
-#include <quickmail.h>
#include <zip.h>
#include <dcp/encrypted_kdm.h>
#include <dcp/types.h>
#include "util.h"
#include "film.h"
#include "config.h"
+#include "safe_stringstream.h"
+#include "quickmail.h"
using std::list;
using std::string;
-using std::stringstream;
using std::cout;
using boost::shared_ptr;
/* Send email */
quickmail_initialize ();
- quickmail mail = quickmail_create (Config::instance()->kdm_from().c_str(), "KDM delivery");
+
+ 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", film->dcp_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 ());
+ }
+
+ quickmail_add_header (mail, "Content-Type: text/plain; charset=UTF-8");
+
string body = Config::instance()->kdm_email().c_str();
boost::algorithm::replace_all (body, "$CPL_NAME", film->dcp_name ());
- stringstream start;
- start << from.date() << " " << from.time_of_day();
boost::algorithm::replace_all (body, "$START_TIME", start.str ());
- stringstream end;
- end << to.date() << " " << to.time_of_day();
boost::algorithm::replace_all (body, "$END_TIME", end.str ());
boost::algorithm::replace_all (body, "$CINEMA_NAME", i->cinema->name);
- stringstream screens;
+
+ SafeStringStream screens;
for (list<ScreenKDM>::const_iterator j = i->screen_kdms.begin(); j != i->screen_kdms.end(); ++j) {
screens << j->screen->name << ", ";
}