summaryrefslogtreecommitdiff
path: root/indra/llmessage/llmail.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llmessage/llmail.h')
-rw-r--r--indra/llmessage/llmail.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/indra/llmessage/llmail.h b/indra/llmessage/llmail.h
new file mode 100644
index 0000000000..e34b827f5f
--- /dev/null
+++ b/indra/llmessage/llmail.h
@@ -0,0 +1,66 @@
+/**
+ * @file llmail.h
+ * @brief smtp helper functions.
+ *
+ * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#ifndef LL_LLMAIL_H
+#define LL_LLMAIL_H
+
+#include "apr-1/apr_pools.h"
+
+// if hostname is NULL, then the host is resolved as 'mail'
+void init_mail(const std::string& hostname, apr_pool_t* pool);
+
+// Allow all email transmission to be disabled/enabled.
+void enable_mail(bool mail_enabled);
+
+// returns TRUE if the call succeeds, FALSE otherwise.
+//
+// Results in:
+// From: "from_name" <from_address>
+// To: "to_name" <to_address>
+// Subject: subject
+// message
+BOOL send_mail(const char* from_name, const char* from_address,
+ const char* to_name, const char* to_address,
+ const char* subject, const char* message);
+
+/**
+ * @brief build the complete smtp transaction & header for use in an
+ * mail.
+ *
+ * @param from_name The name of the email sender
+ * @param from_address The email address for the sender
+ * @param to_name The name of the email recipient
+ * @param to_name The email recipient address
+ * @param subject The subject of the email
+ * @return Returns the complete SMTP transaction mail header.
+ */
+std::string build_smtp_transaction(
+ const char* from_name,
+ const char* from_address,
+ const char* to_name,
+ const char* to_address,
+ const char* subject);
+
+/**
+ * @brief send an email with header and body.
+ *
+ * @param header The email header. Use build_mail_header().
+ * @param message The unescaped email message.
+ * @param from_address Used for debugging
+ * @param to_address Used for debugging
+ * @return Returns true if the message could be sent.
+ */
+bool send_mail(
+ const std::string& header,
+ const std::string& message,
+ const char* from_address,
+ const char* to_address);
+
+extern const size_t LL_MAX_KNOWN_GOOD_MAIL_SIZE;
+
+#endif