summaryrefslogtreecommitdiff
path: root/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/MailSettings.php
diff options
context:
space:
mode:
Diffstat (limited to 'Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/MailSettings.php')
-rw-r--r--Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/MailSettings.php274
1 files changed, 274 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/MailSettings.php b/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/MailSettings.php
new file mode 100644
index 0000000..8ee56ea
--- /dev/null
+++ b/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/MailSettings.php
@@ -0,0 +1,274 @@
+<?php
+/**
+ * This helper builds the MailSettings object for a /mail/send API call
+ *
+ * PHP Version - 5.6, 7.0, 7.1, 7.2
+ *
+ * @package SendGrid\Mail
+ * @author Elmer Thomas <dx@sendgrid.com>
+ * @copyright 2018-19 Twilio SendGrid
+ * @license https://opensource.org/licenses/MIT The MIT License
+ * @version GIT: <git_id>
+ * @link http://packagist.org/packages/sendgrid/sendgrid
+ */
+
+namespace SendGrid\Mail;
+
+/**
+ * This class is used to construct a MailSettings object for the /mail/send API call
+ *
+ * A collection of different mail settings that you can use to specify how you would
+ * like this email to be handled
+ *
+ * @package SendGrid\Mail
+ */
+class MailSettings implements \JsonSerializable
+{
+ /** @var $bcc Bcc object */
+ private $bcc;
+ /** @var $bypass_list_management BypassListManagement object */
+ private $bypass_list_management;
+ /** @var $footer Footer object */
+ private $footer;
+ /** @var $sandbox_mode SandBoxMode object */
+ private $sandbox_mode;
+ /** @var $spam_check SpamCheck object */
+ private $spam_check;
+
+ /**
+ * Optional constructor
+ *
+ * @param BccSettings|null $bcc_settings BccSettings object
+ * @param BypassListManagement|null $bypass_list_management BypassListManagement
+ * object
+ * @param Footer|null $footer Footer object
+ * @param SandBoxMode|null $sandbox_mode SandBoxMode object
+ * @param SpamCheck|null $spam_check SpamCheck object
+ */
+ public function __construct(
+ $bcc_settings = null,
+ $bypass_list_management = null,
+ $footer = null,
+ $sandbox_mode = null,
+ $spam_check = null
+ ) {
+ if (isset($bcc_settings)) {
+ $this->setBccSettings($bcc_settings);
+ }
+ if (isset($bypass_list_management)) {
+ $this->setBypassListManagement($bypass_list_management);
+ }
+ if (isset($footer)) {
+ $this->setFooter($footer);
+ }
+ if (isset($sandbox_mode)) {
+ $this->setSandboxMode($sandbox_mode);
+ }
+ if (isset($spam_check)) {
+ $this->setSpamCheck($spam_check);
+ }
+ }
+
+ /**
+ * Set the bcc settings on a MailSettings object
+ *
+ * @param BccSettings|bool $enable The BccSettings object or an indication
+ * if the setting is enabled
+ * @param string|null $email The email address that you would like
+ * to receive the BCC
+ *
+ * @throws TypeException
+ */
+ public function setBccSettings($enable, $email = null)
+ {
+ if ($enable instanceof BccSettings) {
+ $bcc = $enable;
+ $this->bcc = $bcc;
+ return;
+ }
+ if (!is_bool($enable)) {
+ throw new TypeException(
+ '$enable must be an instance of SendGrid\Mail\BccSettings or of type bool.'
+ );
+ }
+ $this->bcc = new BccSettings($enable, $email);
+ }
+
+ /**
+ * Retrieve the bcc settings from a MailSettings object
+ *
+ * @return Bcc
+ */
+ public function getBccSettings()
+ {
+ return $this->bcc;
+ }
+
+ /**
+ * Set bypass list management settings on a MailSettings object
+ *
+ * @param BypassListManagement|bool $enable The BypassListManagement
+ * object or an indication
+ * if the setting is enabled
+ *
+ * @throws TypeException
+ */
+ public function setBypassListManagement($enable)
+ {
+ if ($enable instanceof BypassListManagement) {
+ $bypass_list_management = $enable;
+ $this->bypass_list_management = $bypass_list_management;
+ return;
+ }
+ if (!is_bool($enable)) {
+ throw new TypeException(
+ '$enable must be an instance of SendGrid\Mail\BypassListManagement or of type bool.'
+ );
+ }
+ $this->bypass_list_management = new BypassListManagement($enable);
+ return;
+ }
+
+ /**
+ * Retrieve bypass list management settings from a MailSettings object
+ *
+ * @return BypassListManagement
+ */
+ public function getBypassListManagement()
+ {
+ return $this->bypass_list_management;
+ }
+
+ /**
+ * Set the footer settings on a MailSettings object
+ *
+ * @param Footer|bool $enable The Footer object or an indication
+ * if the setting is enabled
+ * @param string|null $text The plain text content of your footer
+ * @param string|null $html The HTML content of your footer
+ *
+ * @return null
+ */
+ public function setFooter($enable, $text = null, $html = null)
+ {
+ if ($enable instanceof Footer) {
+ $footer = $enable;
+ $this->footer = $footer;
+ return;
+ }
+ $this->footer = new Footer($enable, $text, $html);
+ return;
+ }
+
+ /**
+ * Retrieve the footer settings from a MailSettings object
+ *
+ * @return Footer
+ */
+ public function getFooter()
+ {
+ return $this->footer;
+ }
+
+ /**
+ * Set sandbox mode settings on a MailSettings object
+ *
+ * @param SandBoxMode|bool $enable The SandBoxMode object or an
+ * indication if the setting is enabled
+ *
+ * @return null
+ */
+ public function setSandboxMode($enable)
+ {
+ if ($enable instanceof SandBoxMode) {
+ $sandbox_mode = $enable;
+ $this->sandbox_mode = $sandbox_mode;
+ return;
+ }
+ $this->sandbox_mode = new SandBoxMode($enable);
+ return;
+ }
+
+ /**
+ * Retrieve sandbox mode settings on a MailSettings object
+ *
+ * @return SandBoxMode
+ */
+ public function getSandboxMode()
+ {
+ return $this->sandbox_mode;
+ }
+
+ /**
+ * Enable sandbox mode on a MailSettings object
+ */
+ public function enableSandboxMode()
+ {
+ $this->setSandboxMode(true);
+ }
+
+ /**
+ * Disable sandbox mode on a MailSettings object
+ */
+ public function disableSandboxMode()
+ {
+ $this->setSandboxMode(false);
+ }
+
+ /**
+ * Set spam check settings on a MailSettings object
+ *
+ * @param SpamCheck|bool $enable The SpamCheck object or an
+ * indication if the setting is enabled
+ * @param int $threshold The threshold used to determine if your
+ * content qualifies as spam on a scale
+ * from 1 to 10, with 10 being most strict,
+ * or most
+ * @param string $post_to_url An Inbound Parse URL that you would like
+ * a copy of your email along with the spam
+ * report to be sent to
+ *
+ * @return null
+ */
+ public function setSpamCheck($enable, $threshold = null, $post_to_url = null)
+ {
+ if ($enable instanceof SpamCheck) {
+ $spam_check = $enable;
+ $this->spam_check = $spam_check;
+ return;
+ }
+ $this->spam_check = new SpamCheck($enable, $threshold, $post_to_url);
+ return;
+ }
+
+ /**
+ * Retrieve spam check settings from a MailSettings object
+ *
+ * @return SpamCheck
+ */
+ public function getSpamCheck()
+ {
+ return $this->spam_check;
+ }
+
+ /**
+ * Return an array representing a MailSettings object for the Twilio SendGrid API
+ *
+ * @return null|array
+ */
+ public function jsonSerialize()
+ {
+ return array_filter(
+ [
+ 'bcc' => $this->getBccSettings(),
+ 'bypass_list_management' => $this->getBypassListManagement(),
+ 'footer' => $this->getFooter(),
+ 'sandbox_mode' => $this->getSandboxMode(),
+ 'spam_check' => $this->getSpamCheck()
+ ],
+ function ($value) {
+ return $value !== null;
+ }
+ ) ?: null;
+ }
+}