projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename SafeStringStream -> locked_stringstream. Bump deps for removal of stringstream.
[dcpomatic.git]
/
src
/
lib
/
emailer.cc
diff --git
a/src/lib/emailer.cc
b/src/lib/emailer.cc
index 4081c61153cded88fc3f8d505f84443dd0e49d1e..71b29db1e06acb42c0fc359ced67bd589197bfee 100644
(file)
--- a/
src/lib/emailer.cc
+++ b/
src/lib/emailer.cc
@@
-1,24
+1,24
@@
/*
Copyright (C) 2015 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2015 Carl Hetherington <cth@carlh.net>
- This program is free software; you can redistribute it and/or modify
+ This file is part of DCP-o-matic.
+
+ DCP-o-matic is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-
This program
is distributed in the hope that it will be useful,
+
DCP-o-matic
is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
*/
#include "compose.hpp"
*/
#include "compose.hpp"
-#include "data.h"
#include "config.h"
#include "emailer.h"
#include "exceptions.h"
#include "config.h"
#include "emailer.h"
#include "exceptions.h"
@@
-35,6
+35,7
@@
using std::list;
using std::cout;
using std::pair;
using boost::shared_ptr;
using std::cout;
using std::pair;
using boost::shared_ptr;
+using dcp::Data;
Emailer::Emailer (string from, list<string> to, string subject, string body)
: _from (from)
Emailer::Emailer (string from, list<string> to, string subject, string body)
: _from (from)
@@
-44,6
+45,7
@@
Emailer::Emailer (string from, list<string> to, string subject, string body)
, _offset (0)
{
boost::algorithm::replace_all (_body, "\n", "\r\n");
, _offset (0)
{
boost::algorithm::replace_all (_body, "\n", "\r\n");
+ boost::algorithm::replace_all (_body, "\0", " ");
}
void
}
void
@@
-90,7
+92,7
@@
Emailer::get_data (void* ptr, size_t size, size_t nmemb)
}
void
}
void
-Emailer::send ()
+Emailer::send (
string server, int port, string user, string password
)
{
char date_buffer[32];
time_t now = time (0);
{
char date_buffer[32];
time_t now = time (0);
@@
-101,18
+103,18
@@
Emailer::send ()
boost::posix_time::time_duration offset = local_now - utc_now;
sprintf (date_buffer + strlen(date_buffer), "%s%02d%02d", (offset.hours() >= 0 ? "+" : "-"), abs (offset.hours()), offset.minutes());
boost::posix_time::time_duration offset = local_now - utc_now;
sprintf (date_buffer + strlen(date_buffer), "%s%02d%02d", (offset.hours() >= 0 ? "+" : "-"), abs (offset.hours()), offset.minutes());
-
SafeStringS
tream email;
+
locked_strings
tream email;
email << "Date: " << date_buffer << "\r\n"
<< "To: " << address_list (_to) << "\r\n"
<< "From: " << _from << "\r\n";
if (!_cc.empty ()) {
email << "Date: " << date_buffer << "\r\n"
<< "To: " << address_list (_to) << "\r\n"
<< "From: " << _from << "\r\n";
if (!_cc.empty ()) {
- email << "Cc: " << address_list (_cc);
+ email << "Cc: " << address_list (_cc)
<< "\r\n"
;
}
if (!_bcc.empty ()) {
}
if (!_bcc.empty ()) {
- email << "Bcc: " << address_list (_bcc);
+ email << "Bcc: " << address_list (_bcc)
<< "\r\n"
;
}
string const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
}
string const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
@@
-172,17
+174,13
@@
Emailer::send ()
throw NetworkError ("Could not initialise libcurl");
}
throw NetworkError ("Could not initialise libcurl");
}
- curl_easy_setopt (curl, CURLOPT_URL, String::compose (
- "smtp://%1:%2",
- Config::instance()->mail_server().c_str(),
- Config::instance()->mail_port()
- ).c_str());
+ curl_easy_setopt (curl, CURLOPT_URL, String::compose ("smtp://%1:%2", server.c_str(), port).c_str());
- if (!
Config::instance()->mail_user()
.empty ()) {
- curl_easy_setopt (curl, CURLOPT_USERNAME,
Config::instance()->mail_user().c_str
());
+ if (!
user
.empty ()) {
+ curl_easy_setopt (curl, CURLOPT_USERNAME,
user.c_str
());
}
}
- if (!
Config::instance()->mail_password()
.empty ()) {
- curl_easy_setopt (curl, CURLOPT_PASSWORD,
Config::instance()->mail_password()
.c_str());
+ if (!
password
.empty ()) {
+ curl_easy_setopt (curl, CURLOPT_PASSWORD,
password
.c_str());
}
curl_easy_setopt (curl, CURLOPT_MAIL_FROM, _from.c_str());
}
curl_easy_setopt (curl, CURLOPT_MAIL_FROM, _from.c_str());
@@
-213,7
+211,7
@@
Emailer::send ()
CURLcode const r = curl_easy_perform (curl);
if (r != CURLE_OK) {
CURLcode const r = curl_easy_perform (curl);
if (r != CURLE_OK) {
- throw KDMError (String::compose (_("Failed to send
KDM
email (%1)"), curl_easy_strerror (r)));
+ throw KDMError (String::compose (_("Failed to send email (%1)"), curl_easy_strerror (r)));
}
curl_slist_free_all (recipients);
}
curl_slist_free_all (recipients);