aboutsummaryrefslogtreecommitdiff
path: root/libbutl/sendmail.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-09-22 23:32:28 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-09-22 23:32:28 +0200
commitc09cd7512491cee1e82c1ad8128ce9fd4bc3f79b (patch)
treea659ed768d849130ab5780a11b7f791a463a1a91 /libbutl/sendmail.hxx
parent2a00871f07067f8f9e2de08bb9c8f50e1bf6a650 (diff)
Initial modularization with both Clang and VC hacks
Note: gave up on VC about half way though.
Diffstat (limited to 'libbutl/sendmail.hxx')
-rw-r--r--libbutl/sendmail.hxx120
1 files changed, 0 insertions, 120 deletions
diff --git a/libbutl/sendmail.hxx b/libbutl/sendmail.hxx
deleted file mode 100644
index c631f18..0000000
--- a/libbutl/sendmail.hxx
+++ /dev/null
@@ -1,120 +0,0 @@
-// file : libbutl/sendmail.hxx -*- C++ -*-
-// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
-// license : MIT; see accompanying LICENSE file
-
-#ifndef LIBBUTL_SENDMAIL_HXX
-#define LIBBUTL_SENDMAIL_HXX
-
-#include <string>
-
-#include <libbutl/export.hxx>
-
-#include <libbutl/process.hxx>
-#include <libbutl/fdstream.hxx>
-#include <libbutl/small-vector.hxx>
-
-namespace butl
-{
- // Send email using the sendmail(1) program.
- //
- // Write the body of the email to out. Note that you must explicitly close
- // it before calling wait(). Throw process_error and io_error (both derive
- // from system_error) in case of errors.
- //
- // Typical usage:
- //
- // try
- // {
- // sendmail sm (2, // Diagnostics to stderr.
- // "", // Default From: address.
- // "Test subject",
- // {"test@example.com"});
- //
- // sm.out << "Test body" << endl;
- //
- // sm.out.close ();
- //
- // if (!sm.wait ())
- // ... // sendmail returned non-zero status.
- // }
- // catch (const std::system_error& e)
- // {
- // cerr << "sendmail error: " << e << endl;
- // }
- //
- class LIBBUTL_SYMEXPORT sendmail: public process
- {
- public:
- ofdstream out;
-
- // Notes:
- //
- // - If from is empty then the process user's address is used.
- //
- // - The to/cc/bcc addressed should already be quoted if required.
- //
- using recipients_type = small_vector<std::string, 1>;
-
- template <typename E>
- sendmail (E&& err,
- const std::string& from,
- const std::string& subject,
- const recipients_type& to);
-
- template <typename E>
- sendmail (E&& err,
- const std::string& from,
- const std::string& subject,
- const recipients_type& to,
- const recipients_type& cc);
-
- template <typename E, typename... O>
- sendmail (E&& err,
- const std::string& from,
- const std::string& subject,
- const recipients_type& to,
- const recipients_type& cc,
- const recipients_type& bcc,
- O&&... options);
-
- // Version with the command line callback (see process_run_callback() for
- // details).
- //
- template <typename C, typename E>
- sendmail (const C&,
- E&& err,
- const std::string& from,
- const std::string& subject,
- const recipients_type& to);
-
- template <typename C, typename E>
- sendmail (const C&,
- E&& err,
- const std::string& from,
- const std::string& subject,
- const recipients_type& to,
- const recipients_type& cc);
-
- template <typename C, typename E, typename... O>
- sendmail (const C&,
- E&& err,
- const std::string& from,
- const std::string& subject,
- const recipients_type& to,
- const recipients_type& cc,
- const recipients_type& bcc,
- O&&... options);
-
- private:
- void
- headers (const std::string& from,
- const std::string& subj,
- const recipients_type& to,
- const recipients_type& cc,
- const recipients_type& bcc);
- };
-}
-
-#include <libbutl/sendmail.ixx>
-
-#endif // LIBBUTL_SENDMAIL_HXX