Post SMTP Mailer/Email Log - Version 2.0.5

Version Description

  • 2019-09-26
  • New: You can now export logs to CSV.
  • Updated: Few notifications errors, and minor improvements.
Download this release

Release Info

Developer yehudah
Plugin Icon 128x128 Post SMTP Mailer/Email Log
Version 2.0.5
Comparing to
See all releases

Code changes from version 2.0.4 to 2.0.5

Files changed (160) hide show
  1. Postman/Postman-Configuration/PostmanConfigurationController.php +12 -10
  2. Postman/Postman-Configuration/PostmanRegisterConfigurationSettings.php +12 -3
  3. Postman/Postman-Configuration/postman_manual_config.js +3 -0
  4. Postman/Postman-Configuration/postman_wizard.js +2 -0
  5. Postman/Postman-Connectivity-Test/registered-domain-libs-master/.gitignore +0 -3
  6. Postman/Postman-Email-Log/PostmanEmailLogController.php +62 -15
  7. Postman/Postman-Email-Log/PostmanEmailLogService.php +3 -1
  8. Postman/Postman-Email-Log/PostmanEmailLogView.php +8 -9
  9. Postman/Postman-Mail/google-api-client/vendor/google/apiclient-services/.gitignore +0 -4
  10. Postman/Postman-Mail/google-api-client/vendor/google/auth/.gitignore +0 -3
  11. Postman/Postman-Mail/google-api-client/vendor/psr/log/.gitignore +0 -1
  12. Postman/Postman-Mail/mailgun/vendor/clue/stream-filter/.gitignore +0 -2
  13. Postman/Postman-Mail/mailgun/vendor/symfony/options-resolver/.gitignore +0 -3
  14. Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.gitignore +0 -2
  15. Postman/Postman-Mail/sendgrid/.gitignore +0 -7
  16. Postman/Postman-Mail/sendgrid/composer.lock +128 -0
  17. Postman/Postman-Mail/sendgrid/sendgrid-php.php +5 -0
  18. Postman/Postman-Mail/sendgrid/vendor/autoload.php +7 -0
  19. Postman/Postman-Mail/sendgrid/vendor/composer/ClassLoader.php +413 -0
  20. Postman/Postman-Mail/sendgrid/vendor/composer/LICENSE +433 -0
  21. Postman/Postman-Mail/sendgrid/vendor/composer/autoload_classmap.php +9 -0
  22. Postman/Postman-Mail/sendgrid/vendor/composer/autoload_files.php +10 -0
  23. Postman/Postman-Mail/sendgrid/vendor/composer/autoload_namespaces.php +9 -0
  24. Postman/Postman-Mail/sendgrid/vendor/composer/autoload_psr4.php +13 -0
  25. Postman/Postman-Mail/sendgrid/vendor/composer/autoload_real.php +59 -0
  26. Postman/Postman-Mail/sendgrid/vendor/composer/installed.json +115 -0
  27. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/.codeclimate.yml +18 -0
  28. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/.github/ISSUE_TEMPLATE +17 -0
  29. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/.github/PULL_REQUEST_TEMPLATE +24 -0
  30. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/.travis.yml +27 -0
  31. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/CONTRIBUTING.md +201 -0
  32. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/Dockerfile +13 -0
  33. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/LICENSE.txt +22 -0
  34. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/README.md +195 -0
  35. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/composer.json +36 -0
  36. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/lib/Client.php +596 -0
  37. Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/lib/Response.php +113 -0
  38. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/.codeclimate.yml +11 -0
  39. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/.editorconfig +8 -0
  40. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/.env.sample +1 -0
  41. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/.github/ISSUE_TEMPLATE +16 -0
  42. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/.github/PULL_REQUEST_TEMPLATE +26 -0
  43. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/.travis.yml +33 -0
  44. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/CODE_OF_CONDUCT.md +38 -0
  45. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/LICENSE.md +21 -0
  46. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/README.md +232 -0
  47. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/composer.json +47 -0
  48. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/docker/Dockerfile +22 -0
  49. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/docker/README.md +50 -0
  50. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/docker/entrypoint.sh +15 -0
  51. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/SendGrid.php +77 -0
  52. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/contacts/README.md +16 -0
  53. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/contacts/Recipient.php +92 -0
  54. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/contacts/RecipientForm.php +55 -0
  55. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/loader.php +54 -0
  56. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Asm.php +150 -0
  57. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Attachment.php +235 -0
  58. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/BatchId.php +75 -0
  59. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Bcc.php +24 -0
  60. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/BccSettings.php +118 -0
  61. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/BypassListManagement.php +87 -0
  62. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Category.php +77 -0
  63. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Cc.php +24 -0
  64. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/ClickTracking.php +114 -0
  65. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Content.php +118 -0
  66. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/CustomArg.php +119 -0
  67. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/EmailAddress.php +222 -0
  68. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Footer.php +144 -0
  69. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/From.php +24 -0
  70. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Ganalytics.php +251 -0
  71. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/GroupId.php +73 -0
  72. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/GroupsToDisplay.php +87 -0
  73. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Header.php +116 -0
  74. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/HtmlContent.php +33 -0
  75. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/IpPoolName.php +77 -0
  76. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Mail.php +1911 -0
  77. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/MailSettings.php +274 -0
  78. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/MimeType.php +26 -0
  79. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/OpenTracking.php +124 -0
  80. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Personalization.php +312 -0
  81. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/PlainTextContent.php +33 -0
  82. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/README.md +14 -0
  83. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/ReplyTo.php +24 -0
  84. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/SandBoxMode.php +80 -0
  85. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Section.php +115 -0
  86. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/SendAt.php +102 -0
  87. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/SpamCheck.php +161 -0
  88. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Subject.php +74 -0
  89. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/SubscriptionTracking.php +228 -0
  90. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/Substitution.php +120 -0
  91. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TemplateId.php +86 -0
  92. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/To.php +24 -0
  93. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php +252 -0
  94. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TypeException.php +7 -0
  95. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/stats/Stats.php +269 -0
  96. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/phpcs.xml +196 -0
  97. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/scripts/package.sh +9 -0
  98. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/sendgrid-php.php +3 -0
  99. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/BaseTestClass.php +70 -0
  100. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/data/test.txt +1 -0
  101. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Alerts/AlertsTest.php +52 -0
  102. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/ApiKeys/ApiKeysTest.php +74 -0
  103. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Asm/AsmGroupsTest.php +105 -0
  104. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Asm/AsmSuppressionTest.php +52 -0
  105. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Campaigns/CampaignsTest.php +134 -0
  106. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Categories/CategoriesTest.php +32 -0
  107. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Contacts/ContactDbTest.php +424 -0
  108. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Ip/IpPoolsTest.php +72 -0
  109. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Ip/IpsTest.php +31 -0
  110. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Ip/IpsWarmupTest.php +41 -0
  111. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Mail/MailBatchTest.php +23 -0
  112. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Mail/MailSendTest.php +153 -0
  113. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Mail/MailSettingsTest.php +183 -0
  114. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Mail/MailboxProvidersTest.php +18 -0
  115. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Scopes/ScopesTest.php +15 -0
  116. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/SenderAuthentication/DomainAuthenticationTest.php +124 -0
  117. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/SenderAuthentication/LinkBrandingTest.php +99 -0
  118. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/SenderAuthentication/ReverseDNSTest.php +52 -0
  119. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Senders/SendersTest.php +99 -0
  120. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Settings/AccessSettingsTest.php +76 -0
  121. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Settings/PartnerSettingsTest.php +35 -0
  122. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Settings/TrackingSettingsTest.php +94 -0
  123. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Stats/BrowserStatsTest.php +16 -0
  124. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Stats/ClientsStatsTest.php +25 -0
  125. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Stats/DevicesStatsTest.php +16 -0
  126. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Stats/GeoStatsTest.php +16 -0
  127. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Stats/StatsTest.php +16 -0
  128. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Subusers/SubUsersTest.php +155 -0
  129. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Suppression/SuppressionBlocksTest.php +46 -0
  130. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Suppression/SuppressionBouncesTest.php +47 -0
  131. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Suppression/SuppressionInvalidEmailsTest.php +46 -0
  132. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Suppression/SuppressionSpamReportsTest.php +46 -0
  133. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Suppression/SuppressionUnsubscribesTest.php +16 -0
  134. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Templates/TemplatesTest.php +114 -0
  135. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/Users/UserTest.php +274 -0
  136. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/helpers/contacts/RecipientsTest.php +31 -0
  137. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/integration/helpers/stats/StatsTest.php +238 -0
  138. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/phpunit.xml.dist +8 -0
  139. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/prism.sh +63 -0
  140. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/AttachmentsTest.php +45 -0
  141. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/DynamicTemplateTest.php +415 -0
  142. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/FilesExistTest.php +48 -0
  143. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/KitchenSinkTest.php +1229 -0
  144. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/MailGetContentsTest.php +38 -0
  145. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/MailHelperTest.php +84 -0
  146. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/MultipleEmailToMultipleRecipientsTest.php +517 -0
  147. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/SendGridTest.php +88 -0
  148. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/SingleEmailToASingleRecipientTest.php +98 -0
  149. Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/test/unit/SingleEmailToMultipleRecipientsTest.php +117 -0
  150. Postman/Postman.php +3 -3
  151. Postman/PostmanAdminController.php +3 -1
  152. Postman/PostmanAjaxController.php +8 -1
  153. Postman/PostmanInputSanitizer.php +5 -3
  154. Postman/PostmanLogFields.php +63 -10
  155. Postman/PostmanPluginFeedback.php +2 -2
  156. Postman/PostmanViewController.php +8 -4
  157. Postman/PostmanWpMail.php +2 -1
  158. postman-smtp.php +15 -7
  159. readme.txt +6 -3
  160. style/postman-email-log.css +3 -2
Postman/Postman-Configuration/PostmanConfigurationController.php CHANGED
@@ -390,17 +390,19 @@ class PostmanConfigurationController {
390
print '<section id="notifications">';
391
do_settings_sections( PostmanAdminController::NOTIFICATIONS_OPTIONS );
392
393
- $currentKey = $this->options->getNotificationService();
394
- $pushover = $currentKey == 'pushover' ? 'block' : 'none';
395
- $slack = $currentKey == 'slack' ? 'block' : 'none';
396
397
- echo '<div id="pushover_cred" style="display: ' . $pushover . ';">';
398
- do_settings_sections( PostmanAdminController::NOTIFICATIONS_PUSHOVER_CRED );
399
- echo '</div>';
400
401
- echo '<div id="slack_cred" style="display: ' . $slack . ';">';
402
- do_settings_sections( PostmanAdminController::NOTIFICATIONS_SLACK_CRED );
403
- echo '</div>';
404
405
print '</section>';
406
@@ -608,7 +610,7 @@ class PostmanConfigurationController {
608
Postman::getMailerTypeRecommend();
609
610
$in_wizard = true;
611
- include_once POST_PATH . '/Postman/extra/donation.php';
612
613
print '</section>';
614
print '</fieldset>';
390
print '<section id="notifications">';
391
do_settings_sections( PostmanAdminController::NOTIFICATIONS_OPTIONS );
392
393
+ $currentKey = $this->options->getNotificationService();
394
+ $pushover = $currentKey == 'pushover' ? 'block' : 'none';
395
+ $slack = $currentKey == 'slack' ? 'block' : 'none';
396
397
+ echo '<div id="pushover_cred" style="display: ' . $pushover . ';">';
398
+ do_settings_sections( PostmanAdminController::NOTIFICATIONS_PUSHOVER_CRED );
399
+ echo '</div>';
400
401
+ echo '<div id="slack_cred" style="display: ' . $slack . ';">';
402
+ do_settings_sections( PostmanAdminController::NOTIFICATIONS_SLACK_CRED );
403
+ echo '</div>';
404
+
405
+ do_action( 'post_smtp_notification_settings' );
406
407
print '</section>';
408
610
Postman::getMailerTypeRecommend();
611
612
$in_wizard = true;
613
+ include_once POST_SMTP_PATH . '/Postman/extra/donation.php';
614
615
print '</section>';
616
print '</fieldset>';
Postman/Postman-Configuration/PostmanRegisterConfigurationSettings.php CHANGED
@@ -234,6 +234,7 @@ class PostmanSettingsRegistry {
234
'notification_chrome_uid_callback',
235
), PostmanAdminController::NOTIFICATIONS_OPTIONS, PostmanAdminController::NOTIFICATIONS_SECTION );
236
237
}
238
}
239
@@ -443,12 +444,20 @@ class PostmanSettingsRegistry {
443
444
public function notification_service_callback() {
445
$inputDescription = __( 'Select the notification service you want to recieve alerts about failed emails.' );
446
printf( '<select id="input_%2$s" class="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::NOTIFICATION_SERVICE );
447
$currentKey = $this->options->getNotificationService();
448
449
- $this->printSelectOption( __( 'Email', 'post-smtp' ), 'default', $currentKey );
450
- $this->printSelectOption( __( 'Pushover', 'post-smtp' ), 'pushover', $currentKey );
451
- $this->printSelectOption( __( 'Slack', 'post-smtp' ), 'slack', $currentKey );
452
printf( '</select><br/><span class="postman_input_description">%s</span>', $inputDescription );
453
}
454
234
'notification_chrome_uid_callback',
235
), PostmanAdminController::NOTIFICATIONS_OPTIONS, PostmanAdminController::NOTIFICATIONS_SECTION );
236
237
+ do_action( 'post_smtp_settings' );
238
}
239
}
240
444
445
public function notification_service_callback() {
446
$inputDescription = __( 'Select the notification service you want to recieve alerts about failed emails.' );
447
+
448
+ $options = apply_filters('post_smtp_notification_service', array(
449
+ 'default' => __( 'WP Admin Email', 'post-smtp' ),
450
+ 'pushover' => __( 'Pushover', 'post-smtp' ),
451
+ 'slack' => __( 'Slack', 'post-smtp' ),
452
+ ));
453
+
454
printf( '<select id="input_%2$s" class="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::NOTIFICATION_SERVICE );
455
$currentKey = $this->options->getNotificationService();
456
457
+ foreach ( $options as $key => $label ) {
458
+ $this->printSelectOption( $label, $key, $currentKey );
459
+ }
460
+
461
printf( '</select><br/><span class="postman_input_description">%s</span>', $inputDescription );
462
}
463
Postman/Postman-Configuration/postman_manual_config.js CHANGED
@@ -40,6 +40,9 @@ jQuery(document).ready(
40
$('#pushover_cred').fadeOut('fast');
41
$('#slack_cred').fadeIn();
42
}
43
});
44
45
40
$('#pushover_cred').fadeOut('fast');
41
$('#slack_cred').fadeIn();
42
}
43
+
44
+ Hook.call( 'post_smtp_notification_change', selected );
45
+
46
});
47
48
Postman/Postman-Configuration/postman_wizard.js CHANGED
@@ -517,6 +517,8 @@ function handleConfigurationResponse(response) {
517
jQuery('#pushover_cred').fadeOut('fast');
518
jQuery('#slack_cred').fadeIn();
519
}
520
});
521
522
// add an event on the user port override field
517
jQuery('#pushover_cred').fadeOut('fast');
518
jQuery('#slack_cred').fadeIn();
519
}
520
+
521
+ Hook.call( 'post_smtp_notification_change', selected );
522
});
523
524
// add an event on the user port override field
Postman/Postman-Connectivity-Test/registered-domain-libs-master/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- C/*.o
2
- C/libregdom.so.1
3
- C/test-regdom
Postman/Postman-Email-Log/PostmanEmailLogController.php CHANGED
@@ -72,8 +72,48 @@ class PostmanEmailLogController {
72
PostmanViewController::JQUERY_SCRIPT,
73
PostmanViewController::POSTMAN_SCRIPT,
74
), $pluginData ['version'] );
75
}
76
77
/**
78
*/
79
public function resendMail() {
@@ -91,7 +131,7 @@ class PostmanEmailLogController {
91
$to = $meta_values ['original_to'] [0];
92
}
93
94
- $success = wp_mail( $to, $meta_values ['original_subject'] [0], maybe_unserialize( $meta_values ['original_message'] [0] ), $meta_values ['original_headers'] [0] );
95
96
// Postman API: retrieve the result of sending this message from Postman
97
$result = apply_filters( 'postman_wp_mail_result', null );
@@ -158,21 +198,21 @@ class PostmanEmailLogController {
158
if ( PostmanUtils::isAdmin() && isset( $_REQUEST ['email_log_entry'] ) ) {
159
$this->logger->trace( 'handling bulk action' );
160
if ( wp_verify_nonce( $_REQUEST ['_wpnonce'], 'bulk-email_log_entries' ) ) {
161
- $this->logger->trace( sprintf( 'nonce "%s" passed validation', $_REQUEST ['_wpnonce'] ) );
162
if ( isset( $_REQUEST ['action'] ) && ($_REQUEST ['action'] == 'bulk_delete' || $_REQUEST ['action2'] == 'bulk_delete') ) {
163
$this->logger->trace( sprintf( 'handling bulk delete' ) );
164
$purger = new PostmanEmailLogPurger();
165
- $postids = $_REQUEST ['email_log_entry'];
166
foreach ( $postids as $postid ) {
167
$purger->verifyLogItemExistsAndRemove( $postid );
168
}
169
$mh = new PostmanMessageHandler();
170
$mh->addMessage( __( 'Mail Log Entries were deleted.', 'post-smtp' ) );
171
} else {
172
- $this->logger->warn( sprintf( 'action "%s" not recognized', $_REQUEST ['action'] ) );
173
}
174
} else {
175
- $this->logger->warn( sprintf( 'nonce "%s" failed validation', $_REQUEST ['_wpnonce'] ) );
176
}
177
$this->redirectToLogPage();
178
}
@@ -184,15 +224,15 @@ class PostmanEmailLogController {
184
// only do this for administrators
185
if ( PostmanUtils::isAdmin() ) {
186
$this->logger->trace( 'handling delete item' );
187
- $postid = $_REQUEST ['email'];
188
if ( wp_verify_nonce( $_REQUEST ['_wpnonce'], 'delete_email_log_item_' . $postid ) ) {
189
- $this->logger->trace( sprintf( 'nonce "%s" passed validation', $_REQUEST ['_wpnonce'] ) );
190
$purger = new PostmanEmailLogPurger();
191
$purger->verifyLogItemExistsAndRemove( $postid );
192
$mh = new PostmanMessageHandler();
193
$mh->addMessage( __( 'Mail Log Entry was deleted.', 'post-smtp' ) );
194
} else {
195
- $this->logger->warn( sprintf( 'nonce "%s" failed validation', $_REQUEST ['_wpnonce'] ) );
196
}
197
$this->redirectToLogPage();
198
}
@@ -267,7 +307,7 @@ class PostmanEmailLogController {
267
// only do this for administrators
268
if ( PostmanUtils::isAdmin() ) {
269
$this->logger->trace( 'handling view transcript item' );
270
- $postid = $_REQUEST ['email'];
271
$post = get_post( $postid );
272
$meta_values = PostmanLogFields::get_instance()->get( $postid );
273
// https://css-tricks.com/examples/hrs/
@@ -360,7 +400,7 @@ class PostmanEmailLogController {
360
/* Translators where (%s) is the name of the plugin */
361
echo sprintf( __( '%s Email Log', 'post-smtp' ), __( 'Post SMTP', 'post-smtp' ) )?></h2>
362
363
- <?php include_once POST_PATH . '/Postman/extra/donation.php'; ?>
364
365
<div
366
style="background: #ECECEC; border: 1px solid #CCC; padding: 0 10px; margin-top: 5px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;">
@@ -404,14 +444,21 @@ class PostmanEmailLogController {
404
}
405
?>
406
</select>
407
- </div>
408
- <div class="form-control" style="padding: 0 5px 0 5px;">
409
<button type="submit" name="filter" class="button button-primary"><?php _e( 'Filter/Search', 'post-smtp' ); ?></button>
410
- </div>
411
<div class="form-control">
412
<button type="submit" id="postman_trash_all" name="postman_trash_all" class="button button-primary"><?php _e( 'Trash All', 'post-smtp' ); ?></button>
413
- </div>
414
- </div>
415
<div class="error">Please notice: when you select a date for example 11/20/2017, behind the scene the query select <b>11/20/2017 00:00:00</b>.<br>So if you searching for an email arrived that day at any hour you need to select 11/20/2017 as the <b>From Date</b> and 11/21/2017 as the <b>To Date</b>.</div>
416
</form>
417
72
PostmanViewController::JQUERY_SCRIPT,
73
PostmanViewController::POSTMAN_SCRIPT,
74
), $pluginData ['version'] );
75
+ $this->handleCsvExport();
76
}
77
78
+ function handleCsvExport() {
79
+ if ( ! empty( $_POST ) && ! wp_verify_nonce( $_REQUEST['post-smtp-log'], 'post-smtp' ) )
80
+ die( 'Security check' );
81
+
82
+ if ( isset( $_POST['postman_export_csv'] ) && current_user_can( Postman::MANAGE_POSTMAN_CAPABILITY_LOGS ) ) {
83
+ $args = array(
84
+ 'post_type' => PostmanEmailLogPostType::POSTMAN_CUSTOM_POST_TYPE_SLUG,
85
+ 'post_status' => PostmanEmailLogService::POSTMAN_CUSTOM_POST_STATUS_PRIVATE,
86
+ 'posts_per_page' => -1,
87
+ );
88
+ $logs = new WP_Query($args);
89
+
90
+ if ( empty( $logs->posts ) ) {
91
+ return;
92
+ }
93
+
94
+ header('Content-Type: text/csv');
95
+ header('Content-Disposition: attachment; filename="email-logs.csv"');
96
+
97
+ $fp = fopen('php://output', 'wb');
98
+
99
+ $headers = array_keys( PostmanLogFields::get_instance()->get_fields() );
100
+ fputcsv($fp, $headers);
101
+
102
+ foreach ( $logs->posts as $log ) {
103
+ $meta = PostmanLogFields::get_instance()->get($log->ID);
104
+ $data = [];
105
+ foreach ( $meta as $header => $line ) {
106
+ $data[] = $line[0];
107
+ }
108
+ fputcsv($fp, $data);
109
+ }
110
+
111
+ fclose($fp);
112
+ die();
113
+
114
+ }
115
+ }
116
+
117
/**
118
*/
119
public function resendMail() {
131
$to = $meta_values ['original_to'] [0];
132
}
133
134
+ $success = wp_mail( $to, $meta_values ['original_subject'] [0], $meta_values ['original_message'] [0], $meta_values ['original_headers'] [0] );
135
136
// Postman API: retrieve the result of sending this message from Postman
137
$result = apply_filters( 'postman_wp_mail_result', null );
198
if ( PostmanUtils::isAdmin() && isset( $_REQUEST ['email_log_entry'] ) ) {
199
$this->logger->trace( 'handling bulk action' );
200
if ( wp_verify_nonce( $_REQUEST ['_wpnonce'], 'bulk-email_log_entries' ) ) {
201
+ $this->logger->trace( sprintf( 'nonce "%s" passed validation', sanitize_text_field($_REQUEST ['_wpnonce']) ) );
202
if ( isset( $_REQUEST ['action'] ) && ($_REQUEST ['action'] == 'bulk_delete' || $_REQUEST ['action2'] == 'bulk_delete') ) {
203
$this->logger->trace( sprintf( 'handling bulk delete' ) );
204
$purger = new PostmanEmailLogPurger();
205
+ $postids = array_map( 'absint', $_REQUEST ['email_log_entry'] );
206
foreach ( $postids as $postid ) {
207
$purger->verifyLogItemExistsAndRemove( $postid );
208
}
209
$mh = new PostmanMessageHandler();
210
$mh->addMessage( __( 'Mail Log Entries were deleted.', 'post-smtp' ) );
211
} else {
212
+ $this->logger->warn( sprintf( 'action "%s" not recognized', sanitize_text_field($_REQUEST ['action']) ) );
213
}
214
} else {
215
+ $this->logger->warn( sprintf( 'nonce "%s" failed validation', sanitize_text_field($_REQUEST ['_wpnonce']) ) );
216
}
217
$this->redirectToLogPage();
218
}
224
// only do this for administrators
225
if ( PostmanUtils::isAdmin() ) {
226
$this->logger->trace( 'handling delete item' );
227
+ $postid = absint($_REQUEST ['email']);
228
if ( wp_verify_nonce( $_REQUEST ['_wpnonce'], 'delete_email_log_item_' . $postid ) ) {
229
+ $this->logger->trace( sprintf( 'nonce "%s" passed validation', sanitize_text_field($_REQUEST ['_wpnonce']) ) );
230
$purger = new PostmanEmailLogPurger();
231
$purger->verifyLogItemExistsAndRemove( $postid );
232
$mh = new PostmanMessageHandler();
233
$mh->addMessage( __( 'Mail Log Entry was deleted.', 'post-smtp' ) );
234
} else {
235
+ $this->logger->warn( sprintf( 'nonce "%s" failed validation', sanitize_text_field($_REQUEST ['_wpnonce']) ) );
236
}
237
$this->redirectToLogPage();
238
}
307
// only do this for administrators
308
if ( PostmanUtils::isAdmin() ) {
309
$this->logger->trace( 'handling view transcript item' );
310
+ $postid = absint($_REQUEST ['email']);
311
$post = get_post( $postid );
312
$meta_values = PostmanLogFields::get_instance()->get( $postid );
313
// https://css-tricks.com/examples/hrs/
400
/* Translators where (%s) is the name of the plugin */
401
echo sprintf( __( '%s Email Log', 'post-smtp' ), __( 'Post SMTP', 'post-smtp' ) )?></h2>
402
403
+ <?php include_once POST_SMTP_PATH . '/Postman/extra/donation.php'; ?>
404
405
<div
406
style="background: #ECECEC; border: 1px solid #CCC; padding: 0 10px; margin-top: 5px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;">
444
}
445
?>
446
</select>
447
+ </div>
448
+
449
+ <div class="form-control">
450
+ <button type="submit" id="postman_export_csv" name="postman_export_csv" class="button button-primary"><?php _e( 'Export To CSV', 'post-smtp' ); ?></button>
451
+ </div>
452
+
453
+ <div class="form-control" style="padding: 0 5px 0 5px; margin-right: 50px;">
454
<button type="submit" name="filter" class="button button-primary"><?php _e( 'Filter/Search', 'post-smtp' ); ?></button>
455
+ </div>
456
+
457
<div class="form-control">
458
<button type="submit" id="postman_trash_all" name="postman_trash_all" class="button button-primary"><?php _e( 'Trash All', 'post-smtp' ); ?></button>
459
+ </div>
460
+
461
+ </div>
462
<div class="error">Please notice: when you select a date for example 11/20/2017, behind the scene the query select <b>11/20/2017 00:00:00</b>.<br>So if you searching for an email arrived that day at any hour you need to select 11/20/2017 as the <b>From Date</b> and 11/21/2017 as the <b>To Date</b>.</div>
463
</form>
464
Postman/Postman-Email-Log/PostmanEmailLogService.php CHANGED
@@ -193,7 +193,7 @@ if ( ! class_exists( 'PostmanEmailLogService' ) ) {
193
$message .= "\r\n" . __( 'The log to paste when you open a support issue:', 'post-smtp' ) . "\r\n";
194
195
if ( $log->statusMessage && ! empty( $log->statusMessage ) ) {
196
- require_once POST_PATH . '/Postman/notifications/PostmanNotify.php';
197
198
$message = $message . $log->statusMessage;
199
@@ -212,6 +212,8 @@ if ( ! class_exists( 'PostmanEmailLogService' ) ) {
212
$notifyer = new PostmanMailNotify;
213
}
214
215
// Notifications
216
$notify = new PostmanNotify( $notifyer );
217
$notify->send($message, $log);
193
$message .= "\r\n" . __( 'The log to paste when you open a support issue:', 'post-smtp' ) . "\r\n";
194
195
if ( $log->statusMessage && ! empty( $log->statusMessage ) ) {
196
+ require_once POST_SMTP_PATH . '/Postman/notifications/PostmanNotify.php';
197
198
$message = $message . $log->statusMessage;
199
212
$notifyer = new PostmanMailNotify;
213
}
214
215
+ $notifyer = apply_filters( 'post_smtp_notifier', $notifyer, $notification_service );
216
+
217
// Notifications
218
$notify = new PostmanNotify( $notifyer );
219
$notify->send($message, $log);
Postman/Postman-Email-Log/PostmanEmailLogView.php CHANGED
@@ -110,9 +110,10 @@ class PostmanEmailLogView extends WP_List_Table {
110
}
111
if ( ! (empty( $meta_values ['original_to'] [0] ) && empty( $meta_values ['originalHeaders'] [0] )) ) {
112
// $actions ['resend'] = sprintf ( '<a href="%s">%s</a>', $resendUrl, __ ( 'Resend', 'post-smtp' ) );
113
- $emails = maybe_unserialize( $meta_values ['original_to'] [0] );
114
- $to = is_array( $emails ) ? implode( ',', $emails ) : $emails;
115
- $actions ['resend'] = sprintf( '<span id="%3$s"><a class="postman-open-resend" href="#">%2$s</a></span><div style="display:none;"><input type="hidden" name="security" value="%6$s"><input type="text" name="mail_to" class="regular-text ltr" data-id="%1$s" value="%4$s"><button class="postman-resend button button-primary">%2$s</button><i style="color: black;">%5$s</i></div>', $item ['ID'], __( 'Resend', 'post-smtp' ), 'resend-' . $item ['ID'], esc_attr( $to ), __( 'comma-separated for multiple emails', 'post-smtp' ), wp_create_nonce( 'resend' ) );
116
} else {
117
$actions ['resend'] = sprintf( '%2$s', $resendUrl, __( 'Resend', 'post-smtp' ) );
118
}
@@ -262,10 +263,8 @@ class PostmanEmailLogView extends WP_List_Table {
262
* ************************************************************************
263
*/
264
function prepare_items() {
265
- if ( isset( $_POST['action'] ) && $_POST['action'] == 'post-smtp-filter' ) {
266
- if ( ! wp_verify_nonce( $_REQUEST['post-smtp-log'], 'post-smtp' ) )
267
- die( 'Security check' );
268
- }
269
270
/**
271
* First, lets decide how many records per page to show
@@ -396,8 +395,8 @@ class PostmanEmailLogView extends WP_List_Table {
396
* sorting technique would be unnecessary.
397
*/
398
function usort_reorder( $a, $b ) {
399
- $orderby = ( ! empty( $_REQUEST ['orderby'] )) ? $_REQUEST ['orderby'] : 'title'; // If no sort, default to title
400
- $order = ( ! empty( $_REQUEST ['order'] )) ? $_REQUEST ['order'] : 'asc'; // If no order, default to asc
401
$result = strcmp( $a [ $orderby ], $b [ $orderby ] ); // Determine sort order
402
return ($order === 'asc') ? $result : - $result; // Send final sort direction to usort
403
}
110
}
111
if ( ! (empty( $meta_values ['original_to'] [0] ) && empty( $meta_values ['originalHeaders'] [0] )) ) {
112
// $actions ['resend'] = sprintf ( '<a href="%s">%s</a>', $resendUrl, __ ( 'Resend', 'post-smtp' ) );
113
+ $emails = $meta_values ['original_to'] [0];
114
+ $to = is_array( $emails ) ? implode( ',', array_walk($emails, 'sanitize_email') ) : sanitize_email( $emails );
115
+
116
+ $actions ['resend'] = sprintf( '<span id="%3$s"><a class="postman-open-resend" href="#">%2$s</a></span><div style="display:none;"><input type="hidden" name="security" value="%6$s"><input type="text" name="mail_to" class="regular-text ltr" data-id="%1$s" value="%4$s"><button class="postman-resend button button-primary">%2$s</button><i style="color: black;">%5$s</i></div>', $item ['ID'], __( 'Resend', 'post-smtp' ), 'resend-' . $item ['ID'], esc_attr( $to ), __( 'comma-separated for multiple emails', 'post-smtp' ), wp_create_nonce( 'resend' ) );
117
} else {
118
$actions ['resend'] = sprintf( '%2$s', $resendUrl, __( 'Resend', 'post-smtp' ) );
119
}
263
* ************************************************************************
264
*/
265
function prepare_items() {
266
+ if ( ! empty( $_POST ) && ! wp_verify_nonce( $_REQUEST['post-smtp-log'], 'post-smtp' ) )
267
+ die( 'Security check' );
268
269
/**
270
* First, lets decide how many records per page to show
395
* sorting technique would be unnecessary.
396
*/
397
function usort_reorder( $a, $b ) {
398
+ $orderby = ( ! empty( $_REQUEST ['orderby'] )) ? sanitize_text_field($_REQUEST ['orderby']) : 'title'; // If no sort, default to title
399
+ $order = ( ! empty( $_REQUEST ['order'] )) ? sanitize_text_field($_REQUEST ['order']) : 'asc'; // If no order, default to asc
400
$result = strcmp( $a [ $orderby ], $b [ $orderby ] ); // Determine sort order
401
return ($order === 'asc') ? $result : - $result; // Send final sort direction to usort
402
}
Postman/Postman-Mail/google-api-client/vendor/google/apiclient-services/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- vendor
2
- composer.lock
3
- src/Google/Service/Compute/HTTPHealthCheck.php
4
- src/Google/Service/Compute/HTTPSHealthCheck.php
Postman/Postman-Mail/google-api-client/vendor/google/auth/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- *~
2
- vendor
3
- composer.lock
Postman/Postman-Mail/google-api-client/vendor/psr/log/.gitignore DELETED
@@ -1 +0,0 @@
1
- vendor
Postman/Postman-Mail/mailgun/vendor/clue/stream-filter/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- /vendor
2
- /composer.lock
Postman/Postman-Mail/mailgun/vendor/symfony/options-resolver/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- vendor/
2
- composer.lock
3
- phpunit.xml
Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- /vendor/
2
- composer.lock
Postman/Postman-Mail/sendgrid/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- test/coverage/*
2
- examples/*
3
- dist/
4
- composer.lock
5
- vendor
6
- .env*
7
- sendgrid-php.php
Postman/Postman-Mail/sendgrid/composer.lock ADDED
@@ -0,0 +1,128 @@
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "hash": "cb037c28e262c69616caad2764cb3a4f",
8
+ "content-hash": "907e285f65325b51e424d991537f18af",
9
+ "packages": [
10
+ {
11
+ "name": "sendgrid/php-http-client",
12
+ "version": "3.9.6",
13
+ "source": {
14
+ "type": "git",
15
+ "url": "https://github.com/sendgrid/php-http-client.git",
16
+ "reference": "e9a04d949ee2d19938ab83dc100933a3b41a8ec7"
17
+ },
18
+ "dist": {
19
+ "type": "zip",
20
+ "url": "https://api.github.com/repos/sendgrid/php-http-client/zipball/e9a04d949ee2d19938ab83dc100933a3b41a8ec7",
21
+ "reference": "e9a04d949ee2d19938ab83dc100933a3b41a8ec7",
22
+ "shasum": ""
23
+ },
24
+ "require": {
25
+ "php": ">=5.6"
26
+ },
27
+ "require-dev": {
28
+ "phpunit/phpunit": "~4.4",
29
+ "squizlabs/php_codesniffer": "~2.0"
30
+ },
31
+ "type": "library",
32
+ "autoload": {
33
+ "psr-4": {
34
+ "SendGrid\\": "lib/"
35
+ }
36
+ },
37
+ "notification-url": "https://packagist.org/downloads/",
38
+ "license": [
39
+ "MIT"
40
+ ],
41
+ "authors": [
42
+ {
43
+ "name": "Matt Bernier",
44
+ "email": "dx@sendgrid.com"
45
+ },
46
+ {
47
+ "name": "Elmer Thomas",
48
+ "email": "elmer@thinkingserious.com"
49
+ }
50
+ ],
51
+ "description": "HTTP REST client, simplified for PHP",
52
+ "homepage": "http://github.com/sendgrid/php-http-client",
53
+ "keywords": [
54
+ "api",
55
+ "fluent",
56
+ "http",
57
+ "rest",
58
+ "sendgrid"
59
+ ],
60
+ "time": "2018-04-10 18:06:08"
61
+ },
62
+ {
63
+ "name": "sendgrid/sendgrid",
64
+ "version": "7.3.0",
65
+ "source": {
66
+ "type": "git",
67
+ "url": "https://github.com/sendgrid/sendgrid-php.git",
68
+ "reference": "37fa19d3ae019842f07a2a43e92ed0f566ad927d"
69
+ },
70
+ "dist": {
71
+ "type": "zip",
72
+ "url": "https://api.github.com/repos/sendgrid/sendgrid-php/zipball/37fa19d3ae019842f07a2a43e92ed0f566ad927d",
73
+ "reference": "37fa19d3ae019842f07a2a43e92ed0f566ad927d",
74
+ "shasum": ""
75
+ },
76
+ "require": {
77
+ "ext-curl": "*",
78
+ "ext-json": "*",
79
+ "ext-mbstring": "*",
80
+ "ext-openssl": "*",
81
+ "php": ">=5.6",
82
+ "sendgrid/php-http-client": "~3.9"
83
+ },
84
+ "replace": {
85
+ "sendgrid/sendgrid-php": "*"
86
+ },
87
+ "require-dev": {
88
+ "phpunit/phpunit": "^5.7.9 || ^6.4.3",
89
+ "squizlabs/php_codesniffer": "3.*",
90
+ "swaggest/json-diff": "^3.4"
91
+ },
92
+ "type": "library",
93
+ "autoload": {
94
+ "psr-4": {
95
+ "SendGrid\\": "lib/",
96
+ "SendGrid\\Mail\\": "lib/mail/",
97
+ "SendGrid\\Contacts\\": "lib/contacts/",
98
+ "SendGrid\\Stats\\": "lib/stats/"
99
+ },
100
+ "files": [
101
+ "lib/SendGrid.php"
102
+ ]
103
+ },
104
+ "notification-url": "https://packagist.org/downloads/",
105
+ "license": [
106
+ "MIT"
107
+ ],
108
+ "description": "This library allows you to quickly and easily send emails through Twilio SendGrid using PHP.",
109
+ "homepage": "http://github.com/sendgrid/sendgrid-php",
110
+ "keywords": [
111
+ "email",
112
+ "grid",
113
+ "send",
114
+ "sendgrid",
115
+ "twilio sendgrid"
116
+ ],
117
+ "time": "2019-04-15 17:27:21"
118
+ }
119
+ ],
120
+ "packages-dev": [],
121
+ "aliases": [],
122
+ "minimum-stability": "stable",
123
+ "stability-flags": [],
124
+ "prefer-stable": false,
125
+ "prefer-lowest": false,
126
+ "platform": [],
127
+ "platform-dev": []
128
+ }
Postman/Postman-Mail/sendgrid/sendgrid-php.php ADDED
@@ -0,0 +1,5 @@
1
+ <?php
2
+ if ( ! class_exists('\\SendGrid\\Client') ) {
3
+ require 'vendor/autoload.php';
4
+ }
5
+ ?>
Postman/Postman-Mail/sendgrid/vendor/autoload.php ADDED
@@ -0,0 +1,7 @@
1
+ <?php
2
+
3
+ // autoload.php @generated by Composer
4
+
5
+ require_once __DIR__ . '/composer' . '/autoload_real.php';
6
+
7
+ return ComposerAutoloaderInitb8261ccd2bb9e98223bcd166b46db8d9::getLoader();
Postman/Postman-Mail/sendgrid/vendor/composer/ClassLoader.php ADDED
@@ -0,0 +1,413 @@
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
+ namespace Composer\Autoload;
14
+
15
+ /**
16
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
+ *
18
+ * $loader = new \Composer\Autoload\ClassLoader();
19
+ *
20
+ * // register classes with namespaces
21
+ * $loader->add('Symfony\Component', __DIR__.'/component');
22
+ * $loader->add('Symfony', __DIR__.'/framework');
23
+ *
24
+ * // activate the autoloader
25
+ * $loader->register();
26
+ *
27
+ * // to enable searching the include path (eg. for PEAR packages)
28
+ * $loader->setUseIncludePath(true);
29
+ *
30
+ * In this example, if you try to use a class in the Symfony\Component
31
+ * namespace or one of its children (Symfony\Component\Console for instance),
32
+ * the autoloader will first look for the class under the component/
33
+ * directory, and it will then fallback to the framework/ directory if not
34
+ * found before giving up.
35
+ *
36
+ * This class is loosely based on the Symfony UniversalClassLoader.
37
+ *
38
+ * @author Fabien Potencier <fabien@symfony.com>
39
+ * @author Jordi Boggiano <j.boggiano@seld.be>
40
+ * @see http://www.php-fig.org/psr/psr-0/
41
+ * @see http://www.php-fig.org/psr/psr-4/
42
+ */
43
+ class ClassLoader
44
+ {
45
+ // PSR-4
46
+ private $prefixLengthsPsr4 = array();
47
+ private $prefixDirsPsr4 = array();
48
+ private $fallbackDirsPsr4 = array();
49
+
50
+ // PSR-0
51
+ private $prefixesPsr0 = array();
52
+ private $fallbackDirsPsr0 = array();
53
+
54
+ private $useIncludePath = false;
55
+ private $classMap = array();
56
+
57
+ private $classMapAuthoritative = false;
58
+
59
+ public function getPrefixes()
60
+ {
61
+ if (!empty($this->prefixesPsr0)) {
62
+ return call_user_func_array('array_merge', $this->prefixesPsr0);
63
+ }
64
+
65
+ return array();
66
+ }
67
+
68
+ public function getPrefixesPsr4()
69
+ {
70
+ return $this->prefixDirsPsr4;
71
+ }
72
+
73
+ public function getFallbackDirs()
74
+ {
75
+ return $this->fallbackDirsPsr0;
76
+ }
77
+
78
+ public function getFallbackDirsPsr4()
79
+ {
80
+ return $this->fallbackDirsPsr4;
81
+ }
82
+
83
+ public function getClassMap()
84
+ {
85
+ return $this->classMap;
86
+ }
87
+
88
+ /**
89
+ * @param array $classMap Class to filename map
90
+ */
91
+ public function addClassMap(array $classMap)
92
+ {
93
+ if ($this->classMap) {
94
+ $this->classMap = array_merge($this->classMap, $classMap);
95
+ } else {
96
+ $this->classMap = $classMap;
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Registers a set of PSR-0 directories for a given prefix, either
102
+ * appending or prepending to the ones previously set for this prefix.
103
+ *
104
+ * @param string $prefix The prefix
105
+ * @param array|string $paths The PSR-0 root directories
106
+ * @param bool $prepend Whether to prepend the directories
107
+ */
108
+ public function add($prefix, $paths, $prepend = false)
109
+ {
110
+ if (!$prefix) {
111
+ if ($prepend) {
112
+ $this->fallbackDirsPsr0 = array_merge(
113
+ (array) $paths,
114
+ $this->fallbackDirsPsr0
115
+ );
116
+ } else {
117
+ $this->fallbackDirsPsr0 = array_merge(
118
+ $this->fallbackDirsPsr0,
119
+ (array) $paths
120
+ );
121
+ }
122
+
123
+ return;
124
+ }
125
+
126
+ $first = $prefix[0];
127
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
128
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
129
+
130
+ return;
131
+ }
132
+ if ($prepend) {
133
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
134
+ (array) $paths,
135
+ $this->prefixesPsr0[$first][$prefix]
136
+ );
137
+ } else {
138
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
139
+ $this->prefixesPsr0[$first][$prefix],
140
+ (array) $paths
141
+ );
142
+ }
143
+ }
144
+
145
+ /**
146
+ * Registers a set of PSR-4 directories for a given namespace, either
147
+ * appending or prepending to the ones previously set for this namespace.
148
+ *
149
+ * @param string $prefix The prefix/namespace, with trailing '\\'
150
+ * @param array|string $paths The PSR-4 base directories
151
+ * @param bool $prepend Whether to prepend the directories
152
+ *
153
+ * @throws \InvalidArgumentException
154
+ */
155
+ public function addPsr4($prefix, $paths, $prepend = false)
156
+ {
157
+ if (!$prefix) {
158
+ // Register directories for the root namespace.
159
+ if ($prepend) {
160
+ $this->fallbackDirsPsr4 = array_merge(
161
+ (array) $paths,
162
+ $this->fallbackDirsPsr4
163
+ );
164
+ } else {
165
+ $this->fallbackDirsPsr4 = array_merge(
166
+ $this->fallbackDirsPsr4,
167
+ (array) $paths
168
+ );
169
+ }
170
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
171
+ // Register directories for a new namespace.
172
+ $length = strlen($prefix);
173
+ if ('\\' !== $prefix[$length - 1]) {
174
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
175
+ }
176
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
177
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
178
+ } elseif ($prepend) {
179
+ // Prepend directories for an already registered namespace.
180
+ $this->prefixDirsPsr4[$prefix] = array_merge(
181
+ (array) $paths,
182
+ $this->prefixDirsPsr4[$prefix]
183
+ );
184
+ } else {
185
+ // Append directories for an already registered namespace.
186
+ $this->prefixDirsPsr4[$prefix] = array_merge(
187
+ $this->prefixDirsPsr4[$prefix],
188
+ (array) $paths
189
+ );
190
+ }
191
+ }
192
+
193
+ /**
194
+ * Registers a set of PSR-0 directories for a given prefix,
195
+ * replacing any others previously set for this prefix.
196
+ *
197
+ * @param string $prefix The prefix
198
+ * @param array|string $paths The PSR-0 base directories
199
+ */
200
+ public function set($prefix, $paths)
201
+ {
202
+ if (!$prefix) {
203
+ $this->fallbackDirsPsr0 = (array) $paths;
204
+ } else {
205
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
206
+ }
207
+ }
208
+
209
+ /**
210
+ * Registers a set of PSR-4 directories for a given namespace,
211
+ * replacing any others previously set for this namespace.
212
+ *
213
+ * @param string $prefix The prefix/namespace, with trailing '\\'
214
+ * @param array|string $paths The PSR-4 base directories
215
+ *
216
+ * @throws \InvalidArgumentException
217
+ */
218
+ public function setPsr4($prefix, $paths)
219
+ {
220
+ if (!$prefix) {
221
+ $this->fallbackDirsPsr4 = (array) $paths;
222
+ } else {
223
+ $length = strlen($prefix);
224
+ if ('\\' !== $prefix[$length - 1]) {
225
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
226
+ }
227
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
228
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
229
+ }
230
+ }
231
+
232
+ /**
233
+ * Turns on searching the include path for class files.
234
+ *
235
+ * @param bool $useIncludePath
236
+ */
237
+ public function setUseIncludePath($useIncludePath)
238
+ {
239
+ $this->useIncludePath = $useIncludePath;
240
+ }
241
+
242
+ /**
243
+ * Can be used to check if the autoloader uses the include path to check
244
+ * for classes.
245
+ *
246
+ * @return bool
247
+ */
248
+ public function getUseIncludePath()
249
+ {
250
+ return $this->useIncludePath;
251
+ }
252
+
253
+ /**
254
+ * Turns off searching the prefix and fallback directories for classes
255
+ * that have not been registered with the class map.
256
+ *
257
+ * @param bool $classMapAuthoritative
258
+ */
259
+ public function setClassMapAuthoritative($classMapAuthoritative)
260
+ {
261
+ $this->classMapAuthoritative = $classMapAuthoritative;
262
+ }
263
+
264
+ /**
265
+ * Should class lookup fail if not found in the current class map?
266
+ *
267
+ * @return bool
268
+ */
269
+ public function isClassMapAuthoritative()
270
+ {
271
+ return $this->classMapAuthoritative;
272
+ }
273
+
274
+ /**
275
+ * Registers this instance as an autoloader.
276
+ *
277
+ * @param bool $prepend Whether to prepend the autoloader or not
278
+ */
279
+ public function register($prepend = false)
280
+ {
281
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
282
+ }
283
+
284
+ /**
285
+ * Unregisters this instance as an autoloader.
286
+ */
287
+ public function unregister()
288
+ {
289
+ spl_autoload_unregister(array($this, 'loadClass'));
290
+ }
291
+
292
+ /**
293
+ * Loads the given class or interface.
294
+ *
295
+ * @param string $class The name of the class
296
+ * @return bool|null True if loaded, null otherwise
297
+ */
298
+ public function loadClass($class)
299
+ {
300
+ if ($file = $this->findFile($class)) {
301
+ includeFile($file);
302
+
303
+ return true;
304
+ }
305
+ }
306
+
307
+ /**
308
+ * Finds the path to the file where the class is defined.
309
+ *
310
+ * @param string $class The name of the class
311
+ *
312
+ * @return string|false The path if found, false otherwise
313
+ */
314
+ public function findFile($class)
315
+ {
316
+ // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
317
+ if ('\\' == $class[0]) {
318
+ $class = substr($class, 1);
319
+ }
320
+
321
+ // class map lookup
322
+ if (isset($this->classMap[$class])) {
323
+ return $this->classMap[$class];
324
+ }
325
+ if ($this->classMapAuthoritative) {
326
+ return false;
327
+ }
328
+
329
+ $file = $this->findFileWithExtension($class, '.php');
330
+
331
+ // Search for Hack files if we are running on HHVM
332
+ if ($file === null && defined('HHVM_VERSION')) {
333
+ $file = $this->findFileWithExtension($class, '.hh');
334
+ }
335
+
336
+ if ($file === null) {
337
+ // Remember that this class does not exist.
338
+ return $this->classMap[$class] = false;
339
+ }
340
+
341
+ return $file;
342
+ }
343
+
344
+ private function findFileWithExtension($class, $ext)
345
+ {
346
+ // PSR-4 lookup
347
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
348
+
349
+ $first = $class[0];
350
+ if (isset($this->prefixLengthsPsr4[$first])) {
351
+ foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
352
+ if (0 === strpos($class, $prefix)) {
353
+ foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
354
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
355
+ return $file;
356
+ }
357
+ }
358
+ }
359
+ }
360
+ }
361
+
362
+ // PSR-4 fallback dirs
363
+ foreach ($this->fallbackDirsPsr4 as $dir) {
364
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
365
+ return $file;
366
+ }
367
+ }
368
+
369
+ // PSR-0 lookup
370
+ if (false !== $pos = strrpos($class, '\\')) {
371
+ // namespaced class name
372
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
373
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
374
+ } else {
375
+ // PEAR-like class name
376
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
377
+ }
378
+
379
+ if (isset($this->prefixesPsr0[$first])) {
380
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
381
+ if (0 === strpos($class, $prefix)) {
382
+ foreach ($dirs as $dir) {
383
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
384
+ return $file;
385
+ }
386
+ }
387
+ }
388
+ }
389
+ }
390
+
391
+ // PSR-0 fallback dirs
392
+ foreach ($this->fallbackDirsPsr0 as $dir) {
393
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
394
+ return $file;
395
+ }
396
+ }
397
+
398
+ // PSR-0 include paths.
399
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
400
+ return $file;
401
+ }
402
+ }
403
+ }
404
+
405
+ /**
406
+ * Scope isolated include.
407
+ *
408
+ * Prevents access to $this/self from included files.
409
+ */
410
+ function includeFile($file)
411
+ {
412
+ include $file;
413
+ }
Postman/Postman-Mail/sendgrid/vendor/composer/LICENSE ADDED
@@ -0,0 +1,433 @@
1
+ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2
+ Upstream-Name: Composer
3
+ Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
4
+ Source: https://github.com/composer/composer
5
+
6
+ Files: *
7
+ Copyright: 2016, Nils Adermann <naderman@naderman.de>
8
+ 2016, Jordi Boggiano <j.boggiano@seld.be>
9
+ License: Expat
10
+
11
+ Files: res/cacert.pem
12
+ Copyright: 2015, Mozilla Foundation
13
+ License: MPL-2.0
14
+
15
+ Files: src/Composer/Util/RemoteFilesystem.php
16
+ src/Composer/Util/TlsHelper.php
17
+ Copyright: 2016, Nils Adermann <naderman@naderman.de>
18
+ 2016, Jordi Boggiano <j.boggiano@seld.be>
19
+ 2013, Evan Coury <me@evancoury.com>
20
+ License: Expat and BSD-2-Clause
21
+
22
+ License: BSD-2-Clause
23
+ Redistribution and use in source and binary forms, with or without modification,
24
+ are permitted provided that the following conditions are met:
25
+ .
26
+ * Redistributions of source code must retain the above copyright notice,
27
+ this list of conditions and the following disclaimer.
28
+ .
29
+ * Redistributions in binary form must reproduce the above copyright notice,
30
+ this list of conditions and the following disclaimer in the documentation
31
+ and/or other materials provided with the distribution.
32
+ .
33
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
34
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
35
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
36
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
37
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
38
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
39
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
40
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
41
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
42
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43
+
44
+ License: Expat
45
+ Permission is hereby granted, free of charge, to any person obtaining a copy
46
+ of this software and associated documentation files (the "Software"), to deal
47
+ in the Software without restriction, including without limitation the rights
48
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
49
+ copies of the Software, and to permit persons to whom the Software is furnished
50
+ to do so, subject to the following conditions:
51
+ .
52
+ The above copyright notice and this permission notice shall be included in all
53
+ copies or substantial portions of the Software.
54
+ .
55
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
56
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
57
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
58
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
59
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
60
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
61
+ THE SOFTWARE.
62
+
63
+ License: MPL-2.0
64
+ 1. Definitions
65
+ --------------
66
+ .
67
+ 1.1. "Contributor"
68
+ means each individual or legal entity that creates, contributes to
69
+ the creation of, or owns Covered Software.
70
+ .
71
+ 1.2. "Contributor Version"
72
+ means the combination of the Contributions of others (if any) used
73
+ by a Contributor and that particular Contributor's Contribution.
74
+ .
75
+ 1.3. "Contribution"
76
+ means Covered Software of a particular Contributor.
77
+ .
78
+ 1.4. "Covered Software"
79
+ means Source Code Form to which the initial Contributor has attached
80
+ the notice in Exhibit A, the Executable Form of such Source Code
81
+ Form, and Modifications of such Source Code Form, in each case
82
+ including portions thereof.
83
+ .
84
+ 1.5. "Incompatible With Secondary Licenses"
85
+ means
86
+ .
87
+ (a) that the initial Contributor has attached the notice described
88
+ in Exhibit B to the Covered Software; or
89
+ .
90
+ (b) that the Covered Software was made available under the terms of
91
+ version 1.1 or earlier of the License, but not also under the
92
+ terms of a Secondary License.
93
+ .
94
+ 1.6. "Executable Form"
95
+ means any form of the work other than Source Code Form.
96
+ .
97
+ 1.7. "Larger Work"
98
+ means a work that combines Covered Software with other material, in
99
+ a separate file or files, that is not Covered Software.
100
+ .
101
+ 1.8. "License"
102
+ means this document.
103
+ .
104
+ 1.9. "Licensable"
105
+ means having the right to grant, to the maximum extent possible,
106
+ whether at the time of the initial grant or subsequently, any and
107
+ all of the rights conveyed by this License.
108
+ .
109
+ 1.10. "Modifications"
110
+ means any of the following:
111
+ .
112
+ (a) any file in Source Code Form that results from an addition to,
113
+ deletion from, or modification of the contents of Covered
114
+ Software; or
115
+ .
116
+ (b) any new file in Source Code Form that contains any Covered
117
+ Software.
118
+ .
119
+ 1.11. "Patent Claims" of a Contributor
120
+ means any patent claim(s), including without limitation, method,
121
+ process, and apparatus claims, in any patent Licensable by such
122
+ Contributor that would be infringed, but for the grant of the
123
+ License, by the making, using, selling, offering for sale, having
124
+ made, import, or transfer of either its Contributions or its
125
+ Contributor Version.
126
+ .
127
+ 1.12. "Secondary License"
128
+ means either the GNU General Public License, Version 2.0, the GNU
129
+ Lesser General Public License, Version 2.1, the GNU Affero General
130
+ Public License, Version 3.0, or any later versions of those
131
+ licenses.
132
+ .
133
+ 1.13. "Source Code Form"
134
+ means the form of the work preferred for making modifications.
135
+ .
136
+ 1.14. "You" (or "Your")
137
+ means an individual or a legal entity exercising rights under this
138
+ License. For legal entities, "You" includes any entity that
139
+ controls, is controlled by, or is under common control with You. For
140
+ purposes of this definition, "control" means (a) the power, direct
141
+ or indirect, to cause the direction or management of such entity,
142
+ whether by contract or otherwise, or (b) ownership of more than
143
+ fifty percent (50%) of the outstanding shares or beneficial
144
+ ownership of such entity.
145
+ .
146
+ 2. License Grants and Conditions
147
+ --------------------------------
148
+ .
149
+ 2.1. Grants
150
+ .
151
+ Each Contributor hereby grants You a world-wide, royalty-free,
152
+ non-exclusive license:
153
+ .
154
+ (a) under intellectual property rights (other than patent or trademark)
155
+ Licensable by such Contributor to use, reproduce, make available,
156
+ modify, display, perform, distribute, and otherwise exploit its
157
+ Contributions, either on an unmodified basis, with Modifications, or
158
+ as part of a Larger Work; and
159
+ .
160
+ (b) under Patent Claims of such Contributor to make, use, sell, offer
161
+ for sale, have made, import, and otherwise transfer either its
162
+ Contributions or its Contributor Version.
163
+ .
164
+ 2.2. Effective Date
165
+ .
166
+ The licenses granted in Section 2.1 with respect to any Contribution
167
+ become effective for each Contribution on the date the Contributor first
168
+ distributes such Contribution.
169
+ .
170
+ 2.3. Limitations on Grant Scope
171
+ .
172
+ The licenses granted in this Section 2 are the only rights granted under
173
+ this License. No additional rights or licenses will be implied from the
174
+ distribution or licensing of Covered Software under this License.
175
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
176
+ Contributor:
177
+ .
178
+ (a) for any code that a Contributor has removed from Covered Software;
179
+ or
180
+ .
181
+ (b) for infringements caused by: (i) Your and any other third party's
182
+ modifications of Covered Software, or (ii) the combination of its
183
+ Contributions with other software (except as part of its Contributor
184
+ Version); or
185
+ .
186
+ (c) under Patent Claims infringed by Covered Software in the absence of
187
+ its Contributions.
188
+ .
189
+ This License does not grant any rights in the trademarks, service marks,
190
+ or logos of any Contributor (except as may be necessary to comply with
191
+ the notice requirements in Section 3.4).
192
+ .
193
+ 2.4. Subsequent Licenses
194
+ .
195
+ No Contributor makes additional grants as a result of Your choice to
196
+ distribute the Covered Software under a subsequent version of this
197
+ License (see Section 10.2) or under the terms of a Secondary License (if
198
+ permitted under the terms of Section 3.3).
199
+ .
200
+ 2.5. Representation
201
+ .
202
+ Each Contributor represents that the Contributor believes its
203
+ Contributions are its original creation(s) or it has sufficient rights
204
+ to grant the rights to its Contributions conveyed by this License.
205
+ .
206
+ 2.6. Fair Use
207
+ .
208
+ This License is not intended to limit any rights You have under
209
+ applicable copyright doctrines of fair use, fair dealing, or other
210
+ equivalents.
211
+ .
212
+ 2.7. Conditions
213
+ .
214
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
215
+ in Section 2.1.
216
+ .
217
+ 3. Responsibilities
218
+ -------------------
219
+ .
220
+ 3.1. Distribution of Source Form
221
+ .
222
+ All distribution of Covered Software in Source Code Form, including any
223
+ Modifications that You create or to which You contribute, must be under
224
+ the terms of this License. You must inform recipients that the Source
225
+ Code Form of the Covered Software is governed by the terms of this
226
+ License, and how they can obtain a copy of this License. You may not
227
+ attempt to alter or restrict the recipients' rights in the Source Code
228
+ Form.
229
+ .
230
+ 3.2. Distribution of Executable Form
231
+ .
232
+ If You distribute Covered Software in Executable Form then:
233
+ .
234
+ (a) such Covered Software must also be made available in Source Code
235
+ Form, as described in Section 3.1, and You must inform recipients of
236
+ the Executable Form how they can obtain a copy of such Source Code
237
+ Form by reasonable means in a timely manner, at a charge no more
238
+ than the cost of distribution to the recipient; and
239
+ .
240
+ (b) You may distribute such Executable Form under the terms of this
241
+ License, or sublicense it under different terms, provided that the
242
+ license for the Executable Form does not attempt to limit or alter
243
+ the recipients' rights in the Source Code Form under this License.
244
+ .
245
+ 3.3. Distribution of a Larger Work
246
+ .
247
+ You may create and distribute a Larger Work under terms of Your choice,
248
+ provided that You also comply with the requirements of this License for
249
+ the Covered Software. If the Larger Work is a combination of Covered
250
+ Software with a work governed by one or more Secondary Licenses, and the
251
+ Covered Software is not Incompatible With Secondary Licenses, this
252
+ License permits You to additionally distribute such Covered Software
253
+ under the terms of such Secondary License(s), so that the recipient of
254
+ the Larger Work may, at their option, further distribute the Covered
255
+ Software under the terms of either this License or such Secondary
256
+ License(s).
257
+ .
258
+ 3.4. Notices
259
+ .
260
+ You may not remove or alter the substance of any license notices
261
+ (including copyright notices, patent notices, disclaimers of warranty,
262
+ or limitations of liability) contained within the Source Code Form of
263
+ the Covered Software, except that You may alter any license notices to
264
+ the extent required to remedy known factual inaccuracies.
265
+ .
266
+ 3.5. Application of Additional Terms
267
+ .
268
+ You may choose to offer, and to charge a fee for, warranty, support,
269
+ indemnity or liability obligations to one or more recipients of Covered
270
+ Software. However, You may do so only on Your own behalf, and not on
271
+ behalf of any Contributor. You must make it absolutely clear that any
272
+ such warranty, support, indemnity, or liability obligation is offered by
273
+ You alone, and You hereby agree to indemnify every Contributor for any
274
+ liability incurred by such Contributor as a result of warranty, support,
275
+ indemnity or liability terms You offer. You may include additional
276
+ disclaimers of warranty and limitations of liability specific to any
277
+ jurisdiction.
278
+ .
279
+ 4. Inability to Comply Due to Statute or Regulation
280
+ ---------------------------------------------------
281
+ .
282
+ If it is impossible for You to comply with any of the terms of this
283
+ License with respect to some or all of the Covered Software due to
284
+ statute, judicial order, or regulation then You must: (a) comply with
285
+ the terms of this License to the maximum extent possible; and (b)
286
+ describe the limitations and the code they affect. Such description must
287
+ be placed in a text file included with all distributions of the Covered
288
+ Software under this License. Except to the extent prohibited by statute
289
+ or regulation, such description must be sufficiently detailed for a
290
+ recipient of ordinary skill to be able to understand it.
291
+ .
292
+ 5. Termination
293
+ --------------
294
+ .
295
+ 5.1. The rights granted under this License will terminate automatically
296
+ if You fail to comply with any of its terms. However, if You become
297
+ compliant, then the rights granted under this License from a particular
298
+ Contributor are reinstated (a) provisionally, unless and until such
299
+ Contributor explicitly and finally terminates Your grants, and (b) on an
300
+ ongoing basis, if such Contributor fails to notify You of the
301
+ non-compliance by some reasonable means prior to 60 days after You have
302
+ come back into compliance. Moreover, Your grants from a particular
303
+ Contributor are reinstated on an ongoing basis if such Contributor
304
+ notifies You of the non-compliance by some reasonable means, this is the
305
+ first time You have received notice of non-compliance with this License
306
+ from such Contributor, and You become compliant prior to 30 days after
307
+ Your receipt of the notice.
308
+ .
309
+ 5.2. If You initiate litigation against any entity by asserting a patent
310
+ infringement claim (excluding declaratory judgment actions,
311
+ counter-claims, and cross-claims) alleging that a Contributor Version
312
+ directly or indirectly infringes any patent, then the rights granted to
313
+ You by any and all Contributors for the Covered Software under Section
314
+ 2.1 of this License shall terminate.
315
+ .
316
+ 5.3. In the event of termination under Sections 5.1 or 5.2 above, all
317
+ end user license agreements (excluding distributors and resellers) which
318
+ have been validly granted by You or Your distributors under this License
319
+ prior to termination shall survive termination.
320
+ .
321
+ ************************************************************************
322
+ * *
323
+ * 6. Disclaimer of Warranty *
324
+ * ------------------------- *
325
+ * *
326
+ * Covered Software is provided under this License on an "as is" *
327
+ * basis, without warranty of any kind, either expressed, implied, or *
328
+ * statutory, including, without limitation, warranties that the *
329
+ * Covered Software is free of defects, merchantable, fit for a *
330
+ * particular purpose or non-infringing. The entire risk as to the *
331
+ * quality and performance of the Covered Software is with You. *
332
+ * Should any Covered Software prove defective in any respect, You *
333
+ * (not any Contributor) assume the cost of any necessary servicing, *
334
+ * repair, or correction. This disclaimer of warranty constitutes an *
335
+ * essential part of this License. No use of any Covered Software is *
336
+ * authorized under this License except under this disclaimer. *
337
+ * *
338
+ ************************************************************************
339
+ .
340
+ ************************************************************************
341
+ * *
342
+ * 7. Limitation of Liability *
343
+ * -------------------------- *
344
+ * *
345
+ * Under no circumstances and under no legal theory, whether tort *
346
+ * (including negligence), contract, or otherwise, shall any *
347
+ * Contributor, or anyone who distributes Covered Software as *
348
+ * permitted above, be liable to You for any direct, indirect, *
349
+ * special, incidental, or consequential damages of any character *
350
+ * including, without limitation, damages for lost profits, loss of *
351
+ * goodwill, work stoppage, computer failure or malfunction, or any *
352
+ * and all other commercial damages or losses, even if such party *
353
+ * shall have been informed of the possibility of such damages. This *
354
+ * limitation of liability shall not apply to liability for death or *
355
+ * personal injury resulting from such party's negligence to the *
356
+ * extent applicable law prohibits such limitation. Some *
357
+ * jurisdictions do not allow the exclusion or limitation of *
358
+ * incidental or consequential damages, so this exclusion and *
359
+ * limitation may not apply to You. *
360
+ * *
361
+ ************************************************************************
362
+ .
363
+ 8. Litigation
364
+ -------------
365
+ .
366
+ Any litigation relating to this License may be brought only in the
367
+ courts of a jurisdiction where the defendant maintains its principal
368
+ place of business and such litigation shall be governed by laws of that
369
+ jurisdiction, without reference to its conflict-of-law provisions.
370
+ Nothing in this Section shall prevent a party's ability to bring
371
+ cross-claims or counter-claims.
372
+ .
373
+ 9. Miscellaneous
374
+ ----------------
375
+ .
376
+ This License represents the complete agreement concerning the subject
377
+ matter hereof. If any provision of this License is held to be
378
+ unenforceable, such provision shall be reformed only to the extent
379
+ necessary to make it enforceable. Any law or regulation which provides
380
+ that the language of a contract shall be construed against the drafter
381
+ shall not be used to construe this License against a Contributor.
382
+ .
383
+ 10. Versions of the License
384
+ ---------------------------
385
+ .
386
+ 10.1. New Versions
387
+ .
388
+ Mozilla Foundation is the license steward. Except as provided in Section
389
+ 10.3, no one other than the license steward has the right to modify or
390
+ publish new versions of this License. Each version will be given a
391
+ distinguishing version number.
392
+ .
393
+ 10.2. Effect of New Versions
394
+ .
395
+ You may distribute the Covered Software under the terms of the version
396
+ of the License under which You originally received the Covered Software,
397
+ or under the terms of any subsequent version published by the license
398
+ steward.
399
+ .
400
+ 10.3. Modified Versions
401
+ .
402
+ If you create software not governed by this License, and you want to
403
+ create a new license for such software, you may create and use a
404
+ modified version of this License if you rename the license and remove
405
+ any references to the name of the license steward (except to note that
406
+ such modified license differs from this License).
407
+ .
408
+ 10.4. Distributing Source Code Form that is Incompatible With Secondary
409
+ Licenses
410
+ .
411
+ If You choose to distribute Source Code Form that is Incompatible With
412
+ Secondary Licenses under the terms of this version of the License, the
413
+ notice described in Exhibit B of this License must be attached.
414
+ .
415
+ Exhibit A - Source Code Form License Notice
416
+ -------------------------------------------
417
+ .
418
+ This Source Code Form is subject to the terms of the Mozilla Public
419
+ License, v. 2.0. If a copy of the MPL was not distributed with this
420
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
421
+ .
422
+ If it is not possible or desirable to put the notice in a particular
423
+ file, then You may include the notice in a location (such as a LICENSE
424
+ file in a relevant directory) where a recipient would be likely to look
425
+ for such a notice.
426
+ .
427
+ You may add additional accurate notices of copyright ownership.
428
+ .
429
+ Exhibit B - "Incompatible With Secondary Licenses" Notice
430
+ ---------------------------------------------------------
431
+ .
432
+ This Source Code Form is "Incompatible With Secondary Licenses", as
433
+ defined by the Mozilla Public License, v. 2.0.
Postman/Postman-Mail/sendgrid/vendor/composer/autoload_classmap.php ADDED
@@ -0,0 +1,9 @@
1
+ <?php
2
+
3
+ // autoload_classmap.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
Postman/Postman-Mail/sendgrid/vendor/composer/autoload_files.php ADDED
@@ -0,0 +1,10 @@
1
+ <?php
2
+
3
+ // autoload_files.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ '3f8bdd3b35094c73a26f0106e3c0f8b2' => $vendorDir . '/sendgrid/sendgrid/lib/SendGrid.php',
10
+ );
Postman/Postman-Mail/sendgrid/vendor/composer/autoload_namespaces.php ADDED
@@ -0,0 +1,9 @@
1
+ <?php
2
+
3
+ // autoload_namespaces.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
Postman/Postman-Mail/sendgrid/vendor/composer/autoload_psr4.php ADDED
@@ -0,0 +1,13 @@
1
+ <?php
2
+
3
+ // autoload_psr4.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'SendGrid\\Stats\\' => array($vendorDir . '/sendgrid/sendgrid/lib/stats'),
10
+ 'SendGrid\\Mail\\' => array($vendorDir . '/sendgrid/sendgrid/lib/mail'),
11
+ 'SendGrid\\Contacts\\' => array($vendorDir . '/sendgrid/sendgrid/lib/contacts'),
12
+ 'SendGrid\\' => array($vendorDir . '/sendgrid/php-http-client/lib', $vendorDir . '/sendgrid/sendgrid/lib'),
13
+ );
Postman/Postman-Mail/sendgrid/vendor/composer/autoload_real.php ADDED
@@ -0,0 +1,59 @@
1
+ <?php
2
+
3
+ // autoload_real.php @generated by Composer
4
+
5
+ class ComposerAutoloaderInitb8261ccd2bb9e98223bcd166b46db8d9
6
+ {
7
+ private static $loader;
8
+
9
+ public static function loadClassLoader($class)
10
+ {
11
+ if ('Composer\Autoload\ClassLoader' === $class) {
12
+ require __DIR__ . '/ClassLoader.php';
13
+ }
14
+ }
15
+
16
+ public static function getLoader()
17
+ {
18
+ if (null !== self::$loader) {
19
+ return self::$loader;
20
+ }
21
+
22
+ spl_autoload_register(array('ComposerAutoloaderInitb8261ccd2bb9e98223bcd166b46db8d9', 'loadClassLoader'), true, true);
23
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitb8261ccd2bb9e98223bcd166b46db8d9', 'loadClassLoader'));
25
+
26
+ $map = require __DIR__ . '/autoload_namespaces.php';
27
+ foreach ($map as $namespace => $path) {
28
+ $loader->set($namespace, $path);
29
+ }
30
+
31
+ $map = require __DIR__ . '/autoload_psr4.php';
32
+ foreach ($map as $namespace => $path) {
33
+ $loader->setPsr4($namespace, $path);
34
+ }
35
+
36
+ $classMap = require __DIR__ . '/autoload_classmap.php';
37
+ if ($classMap) {
38
+ $loader->addClassMap($classMap);
39
+ }
40
+
41
+ $loader->register(true);
42
+
43
+ $includeFiles = require __DIR__ . '/autoload_files.php';
44
+ foreach ($includeFiles as $fileIdentifier => $file) {
45
+ composerRequireb8261ccd2bb9e98223bcd166b46db8d9($fileIdentifier, $file);
46
+ }
47
+
48
+ return $loader;
49
+ }
50
+ }
51
+
52
+ function composerRequireb8261ccd2bb9e98223bcd166b46db8d9($fileIdentifier, $file)
53
+ {
54
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
+ require $file;
56
+
57
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
58
+ }
59
+ }
Postman/Postman-Mail/sendgrid/vendor/composer/installed.json ADDED
@@ -0,0 +1,115 @@
1
+ [
2
+ {
3
+ "name": "sendgrid/php-http-client",
4
+ "version": "3.9.6",
5
+ "version_normalized": "3.9.6.0",
6
+ "source": {
7
+ "type": "git",
8
+ "url": "https://github.com/sendgrid/php-http-client.git",
9
+ "reference": "e9a04d949ee2d19938ab83dc100933a3b41a8ec7"
10
+ },
11
+ "dist": {
12
+ "type": "zip",
13
+ "url": "https://api.github.com/repos/sendgrid/php-http-client/zipball/e9a04d949ee2d19938ab83dc100933a3b41a8ec7",
14
+ "reference": "e9a04d949ee2d19938ab83dc100933a3b41a8ec7",
15
+ "shasum": ""
16
+ },
17
+ "require": {
18
+ "php": ">=5.6"
19
+ },
20
+ "require-dev": {
21
+ "phpunit/phpunit": "~4.4",
22
+ "squizlabs/php_codesniffer": "~2.0"
23
+ },
24
+ "time": "2018-04-10 18:06:08",
25
+ "type": "library",
26
+ "installation-source": "dist",
27
+ "autoload": {
28
+ "psr-4": {
29
+ "SendGrid\\": "lib/"
30
+ }
31
+ },
32
+ "notification-url": "https://packagist.org/downloads/",
33
+ "license": [
34
+ "MIT"
35
+ ],
36
+ "authors": [
37
+ {
38
+ "name": "Matt Bernier",
39
+ "email": "dx@sendgrid.com"
40
+ },
41
+ {
42
+ "name": "Elmer Thomas",
43
+ "email": "elmer@thinkingserious.com"
44
+ }
45
+ ],
46
+ "description": "HTTP REST client, simplified for PHP",
47
+ "homepage": "http://github.com/sendgrid/php-http-client",
48
+ "keywords": [
49
+ "api",
50
+ "fluent",
51
+ "http",
52
+ "rest",
53
+ "sendgrid"
54
+ ]
55
+ },
56
+ {
57
+ "name": "sendgrid/sendgrid",
58
+ "version": "7.3.0",
59
+ "version_normalized": "7.3.0.0",
60
+ "source": {
61
+ "type": "git",
62
+ "url": "https://github.com/sendgrid/sendgrid-php.git",
63
+ "reference": "37fa19d3ae019842f07a2a43e92ed0f566ad927d"
64
+ },
65
+ "dist": {
66
+ "type": "zip",
67
+ "url": "https://api.github.com/repos/sendgrid/sendgrid-php/zipball/37fa19d3ae019842f07a2a43e92ed0f566ad927d",
68
+ "reference": "37fa19d3ae019842f07a2a43e92ed0f566ad927d",
69
+ "shasum": ""
70
+ },
71
+ "require": {
72
+ "ext-curl": "*",
73
+ "ext-json": "*",
74
+ "ext-mbstring": "*",
75
+ "ext-openssl": "*",
76
+ "php": ">=5.6",
77
+ "sendgrid/php-http-client": "~3.9"
78
+ },
79
+ "replace": {
80
+ "sendgrid/sendgrid-php": "*"
81
+ },
82
+ "require-dev": {
83
+ "phpunit/phpunit": "^5.7.9 || ^6.4.3",
84
+ "squizlabs/php_codesniffer": "3.*",
85
+ "swaggest/json-diff": "^3.4"
86
+ },
87
+ "time": "2019-04-15 17:27:21",
88
+ "type": "library",
89
+ "installation-source": "dist",
90
+ "autoload": {
91
+ "psr-4": {
92
+ "SendGrid\\": "lib/",
93
+ "SendGrid\\Mail\\": "lib/mail/",
94
+ "SendGrid\\Contacts\\": "lib/contacts/",
95
+ "SendGrid\\Stats\\": "lib/stats/"
96
+ },
97
+ "files": [
98
+ "lib/SendGrid.php"
99
+ ]
100
+ },
101
+ "notification-url": "https://packagist.org/downloads/",
102
+ "license": [
103
+ "MIT"
104
+ ],
105
+ "description": "This library allows you to quickly and easily send emails through Twilio SendGrid using PHP.",
106
+ "homepage": "http://github.com/sendgrid/sendgrid-php",
107
+ "keywords": [
108
+ "email",
109
+ "grid",
110
+ "send",
111
+ "sendgrid",
112
+ "twilio sendgrid"
113
+ ]
114
+ }
115
+ ]
Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/.codeclimate.yml ADDED
@@ -0,0 +1,18 @@
1
+ engines:
2
+ duplication:
3
+ enabled: true
4
+ config:
5
+ languages:
6
+ - "php"
7
+ phpcodesniffer:
8
+ enabled: true
9
+ config:
10
+ file_extensions: "php"
11
+ standard: "PSR1,PSR2"
12
+ ratings:
13
+ paths:
14
+ - "**.php"
15
+ exclude_paths:
16
+ - "examples/**/*"
17
+ - "test/**/*"
18
+ - "vendor/**/*"
Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/.github/ISSUE_TEMPLATE ADDED
@@ -0,0 +1,17 @@
1
+ #### Issue Summary
2
+
3
+ A summary of the issue and the environment in which it occurs. If suitable, include the steps required to reproduce the bug. Please feel free to include screenshots, screencasts, code examples.
4
+
5
+
6
+ #### Steps to Reproduce
7
+
8
+ 1. This is the first step
9
+ 2. This is the second step
10
+ 3. Further steps, etc.
11
+
12
+ Any other information you want to share that is relevant to the issue being reported. Especially, why do you consider this to be a bug? What do you expect to happen instead?
13
+
14
+ #### Technical details:
15
+
16
+ * php-http-client Version: master (latest commit: [commit number])
17
+ * PHP Version: X.X
Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/.github/PULL_REQUEST_TEMPLATE ADDED
@@ -0,0 +1,24 @@
1
+ <!--
2
+ We appreciate the effort for this pull request but before that please make sure you read the contribution guidelines given above, then fill out the blanks below.
3
+
4
+
5
+ Please enter each Issue number you are resolving in your PR after one of the following words [Fixes, Closes, Resolves]. This will auto-link these issues and close them when this PR is merged!
6
+ e.g.
7
+ Fixes #1
8
+ Closes #2
9
+ -->
10
+ # Fixes #
11
+
12
+ ### Checklist
13
+ - [ ] I have made a material change to the repo (functionality, testing, spelling, grammar)
14
+ - [ ] I have read the [Contribution Guide] and my PR follows them.
15
+ - [ ] I updated my branch with the master branch.
16
+ - [ ] I have added tests that prove my fix is effective or that my feature works
17
+ - [ ] I have added necessary documentation about the functionality in the appropriate .md file
18
+ - [ ] I have added in line documentation to the code I modified
19
+
20
+ ### Short description of what this PR does:
21
+ -
22
+ -
23
+
24
+ If you have questions, please send an email to [Sendgrid](mailto:dx@sendgrid.com), or file a Github Issue in this repository.
Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/.travis.yml ADDED
@@ -0,0 +1,27 @@
1
+ language: php
2
+ before_script:
3
+ - composer install --dev --no-interaction
4
+ - cd test/unit
5
+ script:
6
+ - ../../vendor/bin/phpunit . --bootstrap bootstrap.php --filter test* --coverage-clover=coverage.xml
7
+ after_success:
8
+ - bash <(curl -s https://codecov.io/bash)
9
+ php:
10
+ - 5.6
11
+ - 7.0
12
+ env:
13
+ global:
14
+ - secure: eUN0huKA436uIkISu6V3yW01/gZHC6slBvlnprMPEhzclU2szH6qhWEXWS5CcOG6EEDBReqLZdNAwu+FC69KGFO9+6oW2GQQLSsfEViqFi/Ig2N0r4EBO4jLRebgq0GOfetPwQvJH27d8BCiloPy8rXBb5pskxSNw4B4bRyXHz4=
15
+ - secure: j38xzMNmzYXR/JJdVumPmDoDVxb6FUDF497AuVPHowGh0egFW8XHWCOMeQWqWZI4Gg17pViQNIJ3xC6WBvob70AF8fsNm0+vxF2s7abXDMcbq5flLTS6ydKLgNu+na/RAkOBbTwxJAGIH/fQh8BH8iGKerCwoqf8sDErAge4NMw=
16
+ - secure: h3HlxBOsNXBDrIJ0yl467ST6Q8R2TmbL7PltlPcRoHy5gAxn5UiDv5W2+6DSXrwQrTjOUunZ+O9ckcaQGQy1JNhGMwgIkJpyWAHDIHhTYGU289uUIDTHQW/soX0qHJSHSx3iMgDOIc7XnfTz6W7Nv1gYKZFedOMsZ5uBMeGyiXE=
17
+ - secure: SKSl/RHFQNhGT7OUj7E0AbrQnuDhhCRI/4jC76mmzvy8EJBDgUNevAKJGtug+LVilHrlbk9fLC8rayPW6SGv0s3PowTGm8NMOc48aRBLOr7QRo/sMikJCmRuU6HWptr0NKuf2fq6lV94WDm/pDdyOSNyLga9/eaIDs/Sacp78sw=
18
+ notifications:
19
+ hipchat:
20
+ rooms:
21
+ secure: EFEaChRQCOLvxAvmxJe357CbfJ/wpW7ddhU0dqUljawSKbdeTkoF0Ja2NbtnIPVpJrqN9qT8BXTK3fmsJ7OJO+QCLi0R2FPnI7r+GpmjFqkxHO0KJ/Oiv1kB9jL1UcKuwhSsPubWPRvt4TKuDhEefuZb1X2xSFZZAzqROrLKtqUmy9vgpRYZtxmGRTGLfLmih8DJP96yvIOE/7/lp8lEdmXw4xF1NZtshnOiOLYrahY4pcOSl3y7eepzaGA33wWS/truH0Rh/IgTOYP2Z/ujIZE9Eg6nSwwOI8U2XzK/BEwEhrHCeyj3oAoBoGbO/m9ydaM6QM8/VT3JdVHPIWFpIhCioClwrIs3m1KsoMVeqEbuWF3h+ju6RMve5fCNvGV8tUyKpZ8GEVlEc7WdwkSKXeINgRLv7AykybZ6EkCRPkQ61/h+cNQlwKqtfeUaoBwjGAnfMQMQX5qApUn/ow8TbULnveqswhkV1fBsydiPBJxdlDe8x54GclCmgU5wnd283THUecP+8dznU+xVgfHqBnf2k9wirSEnYXh2T228kYUmEWKfhRq/7e86K2DAQAO5Vw/6HgL7e1ZVDccH6hx3lTGyjlUskkZvzktwi6gZ9gxOihQ8Yzkc1IQANr8ckQJvOZjMTQxJqgFWgXJWgRxWlpPiISLauaegcH2eNwGPRmY=
22
+ template:
23
+ - '<a href="https://travis-ci.org/%{repository}/builds/%{build_id}">%{repository}
24
+ Build %{build_number}</a> on branch <i>%{branch}</i> by %{author}: <strong>%{message}</strong>
25
+ <a href="https://github.com/%{repository}/commits/%{commit}">View on GitHub</a>'
26
+ format: html
27
+ notify: true
Postman/Postman-Mail/sendgrid/vendor/sendgrid/php-http-client/CONTRIBUTING.md ADDED
@@ -0,0 +1,201 @@