PluginProbe ʕ •ᴥ•ʔ
Transferito: WP Migration / trunk
Transferito: WP Migration vtrunk
trunk 11.4.0 12.0.0 13.1.0 14.0.0 14.0.11 14.0.7 14.1.0 14.1.1 14.1.2 14.1.3 14.1.4
transferito / vendor / aws / aws-sdk-php / src / Ses / SesClient.php
transferito / vendor / aws / aws-sdk-php / src / Ses Last commit date
Exception 11 months ago SesClient.php 11 months ago
SesClient.php
235 lines
1 <?php
2 namespace Aws\Ses;
3
4 use Aws\Api\ApiProvider;
5 use Aws\Api\DocModel;
6 use Aws\Api\Service;
7 use Aws\Credentials\CredentialsInterface;
8
9 /**
10 * This client is used to interact with the **Amazon Simple Email Service (Amazon SES)**.
11 *
12 * @method \Aws\Result cloneReceiptRuleSet(array $args = [])
13 * @method \GuzzleHttp\Promise\Promise cloneReceiptRuleSetAsync(array $args = [])
14 * @method \Aws\Result createConfigurationSet(array $args = [])
15 * @method \GuzzleHttp\Promise\Promise createConfigurationSetAsync(array $args = [])
16 * @method \Aws\Result createConfigurationSetEventDestination(array $args = [])
17 * @method \GuzzleHttp\Promise\Promise createConfigurationSetEventDestinationAsync(array $args = [])
18 * @method \Aws\Result createConfigurationSetTrackingOptions(array $args = [])
19 * @method \GuzzleHttp\Promise\Promise createConfigurationSetTrackingOptionsAsync(array $args = [])
20 * @method \Aws\Result createCustomVerificationEmailTemplate(array $args = [])
21 * @method \GuzzleHttp\Promise\Promise createCustomVerificationEmailTemplateAsync(array $args = [])
22 * @method \Aws\Result createReceiptFilter(array $args = [])
23 * @method \GuzzleHttp\Promise\Promise createReceiptFilterAsync(array $args = [])
24 * @method \Aws\Result createReceiptRule(array $args = [])
25 * @method \GuzzleHttp\Promise\Promise createReceiptRuleAsync(array $args = [])
26 * @method \Aws\Result createReceiptRuleSet(array $args = [])
27 * @method \GuzzleHttp\Promise\Promise createReceiptRuleSetAsync(array $args = [])
28 * @method \Aws\Result createTemplate(array $args = [])
29 * @method \GuzzleHttp\Promise\Promise createTemplateAsync(array $args = [])
30 * @method \Aws\Result deleteConfigurationSet(array $args = [])
31 * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetAsync(array $args = [])
32 * @method \Aws\Result deleteConfigurationSetEventDestination(array $args = [])
33 * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetEventDestinationAsync(array $args = [])
34 * @method \Aws\Result deleteConfigurationSetTrackingOptions(array $args = [])
35 * @method \GuzzleHttp\Promise\Promise deleteConfigurationSetTrackingOptionsAsync(array $args = [])
36 * @method \Aws\Result deleteCustomVerificationEmailTemplate(array $args = [])
37 * @method \GuzzleHttp\Promise\Promise deleteCustomVerificationEmailTemplateAsync(array $args = [])
38 * @method \Aws\Result deleteIdentity(array $args = [])
39 * @method \GuzzleHttp\Promise\Promise deleteIdentityAsync(array $args = [])
40 * @method \Aws\Result deleteIdentityPolicy(array $args = [])
41 * @method \GuzzleHttp\Promise\Promise deleteIdentityPolicyAsync(array $args = [])
42 * @method \Aws\Result deleteReceiptFilter(array $args = [])
43 * @method \GuzzleHttp\Promise\Promise deleteReceiptFilterAsync(array $args = [])
44 * @method \Aws\Result deleteReceiptRule(array $args = [])
45 * @method \GuzzleHttp\Promise\Promise deleteReceiptRuleAsync(array $args = [])
46 * @method \Aws\Result deleteReceiptRuleSet(array $args = [])
47 * @method \GuzzleHttp\Promise\Promise deleteReceiptRuleSetAsync(array $args = [])
48 * @method \Aws\Result deleteTemplate(array $args = [])
49 * @method \GuzzleHttp\Promise\Promise deleteTemplateAsync(array $args = [])
50 * @method \Aws\Result deleteVerifiedEmailAddress(array $args = [])
51 * @method \GuzzleHttp\Promise\Promise deleteVerifiedEmailAddressAsync(array $args = [])
52 * @method \Aws\Result describeActiveReceiptRuleSet(array $args = [])
53 * @method \GuzzleHttp\Promise\Promise describeActiveReceiptRuleSetAsync(array $args = [])
54 * @method \Aws\Result describeConfigurationSet(array $args = [])
55 * @method \GuzzleHttp\Promise\Promise describeConfigurationSetAsync(array $args = [])
56 * @method \Aws\Result describeReceiptRule(array $args = [])
57 * @method \GuzzleHttp\Promise\Promise describeReceiptRuleAsync(array $args = [])
58 * @method \Aws\Result describeReceiptRuleSet(array $args = [])
59 * @method \GuzzleHttp\Promise\Promise describeReceiptRuleSetAsync(array $args = [])
60 * @method \Aws\Result getAccountSendingEnabled(array $args = [])
61 * @method \GuzzleHttp\Promise\Promise getAccountSendingEnabledAsync(array $args = [])
62 * @method \Aws\Result getCustomVerificationEmailTemplate(array $args = [])
63 * @method \GuzzleHttp\Promise\Promise getCustomVerificationEmailTemplateAsync(array $args = [])
64 * @method \Aws\Result getIdentityDkimAttributes(array $args = [])
65 * @method \GuzzleHttp\Promise\Promise getIdentityDkimAttributesAsync(array $args = [])
66 * @method \Aws\Result getIdentityMailFromDomainAttributes(array $args = [])
67 * @method \GuzzleHttp\Promise\Promise getIdentityMailFromDomainAttributesAsync(array $args = [])
68 * @method \Aws\Result getIdentityNotificationAttributes(array $args = [])
69 * @method \GuzzleHttp\Promise\Promise getIdentityNotificationAttributesAsync(array $args = [])
70 * @method \Aws\Result getIdentityPolicies(array $args = [])
71 * @method \GuzzleHttp\Promise\Promise getIdentityPoliciesAsync(array $args = [])
72 * @method \Aws\Result getIdentityVerificationAttributes(array $args = [])
73 * @method \GuzzleHttp\Promise\Promise getIdentityVerificationAttributesAsync(array $args = [])
74 * @method \Aws\Result getSendQuota(array $args = [])
75 * @method \GuzzleHttp\Promise\Promise getSendQuotaAsync(array $args = [])
76 * @method \Aws\Result getSendStatistics(array $args = [])
77 * @method \GuzzleHttp\Promise\Promise getSendStatisticsAsync(array $args = [])
78 * @method \Aws\Result getTemplate(array $args = [])
79 * @method \GuzzleHttp\Promise\Promise getTemplateAsync(array $args = [])
80 * @method \Aws\Result listConfigurationSets(array $args = [])
81 * @method \GuzzleHttp\Promise\Promise listConfigurationSetsAsync(array $args = [])
82 * @method \Aws\Result listCustomVerificationEmailTemplates(array $args = [])
83 * @method \GuzzleHttp\Promise\Promise listCustomVerificationEmailTemplatesAsync(array $args = [])
84 * @method \Aws\Result listIdentities(array $args = [])
85 * @method \GuzzleHttp\Promise\Promise listIdentitiesAsync(array $args = [])
86 * @method \Aws\Result listIdentityPolicies(array $args = [])
87 * @method \GuzzleHttp\Promise\Promise listIdentityPoliciesAsync(array $args = [])
88 * @method \Aws\Result listReceiptFilters(array $args = [])
89 * @method \GuzzleHttp\Promise\Promise listReceiptFiltersAsync(array $args = [])
90 * @method \Aws\Result listReceiptRuleSets(array $args = [])
91 * @method \GuzzleHttp\Promise\Promise listReceiptRuleSetsAsync(array $args = [])
92 * @method \Aws\Result listTemplates(array $args = [])
93 * @method \GuzzleHttp\Promise\Promise listTemplatesAsync(array $args = [])
94 * @method \Aws\Result listVerifiedEmailAddresses(array $args = [])
95 * @method \GuzzleHttp\Promise\Promise listVerifiedEmailAddressesAsync(array $args = [])
96 * @method \Aws\Result putConfigurationSetDeliveryOptions(array $args = [])
97 * @method \GuzzleHttp\Promise\Promise putConfigurationSetDeliveryOptionsAsync(array $args = [])
98 * @method \Aws\Result putIdentityPolicy(array $args = [])
99 * @method \GuzzleHttp\Promise\Promise putIdentityPolicyAsync(array $args = [])
100 * @method \Aws\Result reorderReceiptRuleSet(array $args = [])
101 * @method \GuzzleHttp\Promise\Promise reorderReceiptRuleSetAsync(array $args = [])
102 * @method \Aws\Result sendBounce(array $args = [])
103 * @method \GuzzleHttp\Promise\Promise sendBounceAsync(array $args = [])
104 * @method \Aws\Result sendBulkTemplatedEmail(array $args = [])
105 * @method \GuzzleHttp\Promise\Promise sendBulkTemplatedEmailAsync(array $args = [])
106 * @method \Aws\Result sendCustomVerificationEmail(array $args = [])
107 * @method \GuzzleHttp\Promise\Promise sendCustomVerificationEmailAsync(array $args = [])
108 * @method \Aws\Result sendEmail(array $args = [])
109 * @method \GuzzleHttp\Promise\Promise sendEmailAsync(array $args = [])
110 * @method \Aws\Result sendRawEmail(array $args = [])
111 * @method \GuzzleHttp\Promise\Promise sendRawEmailAsync(array $args = [])
112 * @method \Aws\Result sendTemplatedEmail(array $args = [])
113 * @method \GuzzleHttp\Promise\Promise sendTemplatedEmailAsync(array $args = [])
114 * @method \Aws\Result setActiveReceiptRuleSet(array $args = [])
115 * @method \GuzzleHttp\Promise\Promise setActiveReceiptRuleSetAsync(array $args = [])
116 * @method \Aws\Result setIdentityDkimEnabled(array $args = [])
117 * @method \GuzzleHttp\Promise\Promise setIdentityDkimEnabledAsync(array $args = [])
118 * @method \Aws\Result setIdentityFeedbackForwardingEnabled(array $args = [])
119 * @method \GuzzleHttp\Promise\Promise setIdentityFeedbackForwardingEnabledAsync(array $args = [])
120 * @method \Aws\Result setIdentityHeadersInNotificationsEnabled(array $args = [])
121 * @method \GuzzleHttp\Promise\Promise setIdentityHeadersInNotificationsEnabledAsync(array $args = [])
122 * @method \Aws\Result setIdentityMailFromDomain(array $args = [])
123 * @method \GuzzleHttp\Promise\Promise setIdentityMailFromDomainAsync(array $args = [])
124 * @method \Aws\Result setIdentityNotificationTopic(array $args = [])
125 * @method \GuzzleHttp\Promise\Promise setIdentityNotificationTopicAsync(array $args = [])
126 * @method \Aws\Result setReceiptRulePosition(array $args = [])
127 * @method \GuzzleHttp\Promise\Promise setReceiptRulePositionAsync(array $args = [])
128 * @method \Aws\Result testRenderTemplate(array $args = [])
129 * @method \GuzzleHttp\Promise\Promise testRenderTemplateAsync(array $args = [])
130 * @method \Aws\Result updateAccountSendingEnabled(array $args = [])
131 * @method \GuzzleHttp\Promise\Promise updateAccountSendingEnabledAsync(array $args = [])
132 * @method \Aws\Result updateConfigurationSetEventDestination(array $args = [])
133 * @method \GuzzleHttp\Promise\Promise updateConfigurationSetEventDestinationAsync(array $args = [])
134 * @method \Aws\Result updateConfigurationSetReputationMetricsEnabled(array $args = [])
135 * @method \GuzzleHttp\Promise\Promise updateConfigurationSetReputationMetricsEnabledAsync(array $args = [])
136 * @method \Aws\Result updateConfigurationSetSendingEnabled(array $args = [])
137 * @method \GuzzleHttp\Promise\Promise updateConfigurationSetSendingEnabledAsync(array $args = [])
138 * @method \Aws\Result updateConfigurationSetTrackingOptions(array $args = [])
139 * @method \GuzzleHttp\Promise\Promise updateConfigurationSetTrackingOptionsAsync(array $args = [])
140 * @method \Aws\Result updateCustomVerificationEmailTemplate(array $args = [])
141 * @method \GuzzleHttp\Promise\Promise updateCustomVerificationEmailTemplateAsync(array $args = [])
142 * @method \Aws\Result updateReceiptRule(array $args = [])
143 * @method \GuzzleHttp\Promise\Promise updateReceiptRuleAsync(array $args = [])
144 * @method \Aws\Result updateTemplate(array $args = [])
145 * @method \GuzzleHttp\Promise\Promise updateTemplateAsync(array $args = [])
146 * @method \Aws\Result verifyDomainDkim(array $args = [])
147 * @method \GuzzleHttp\Promise\Promise verifyDomainDkimAsync(array $args = [])
148 * @method \Aws\Result verifyDomainIdentity(array $args = [])
149 * @method \GuzzleHttp\Promise\Promise verifyDomainIdentityAsync(array $args = [])
150 * @method \Aws\Result verifyEmailAddress(array $args = [])
151 * @method \GuzzleHttp\Promise\Promise verifyEmailAddressAsync(array $args = [])
152 * @method \Aws\Result verifyEmailIdentity(array $args = [])
153 * @method \GuzzleHttp\Promise\Promise verifyEmailIdentityAsync(array $args = [])
154 */
155 class SesClient extends \Aws\AwsClient
156 {
157 /**
158 * @deprecated This method will no longer work due to the deprecation of
159 * V2 credentials with SES as of 03/25/2021
160 * Create an SMTP password for a given IAM user's credentials.
161 *
162 * The SMTP username is the Access Key ID for the provided credentials.
163 *
164 * @link http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html#smtp-credentials-convert
165 *
166 * @param CredentialsInterface $creds
167 *
168 * @return string
169 */
170 public static function generateSmtpPassword(CredentialsInterface $creds)
171 {
172 static $version = "\x02";
173 static $algo = 'sha256';
174 static $message = 'SendRawEmail';
175 $signature = hash_hmac($algo, $message, $creds->getSecretKey(), true);
176
177 return base64_encode($version . $signature);
178 }
179
180 /**
181 * Create an SMTP password for a given IAM user's credentials.
182 *
183 * The SMTP username is the Access Key ID for the provided credentials. This
184 * utility method is not guaranteed to work indefinitely and is provided as
185 * a convenience to customers using the generateSmtpPassword method. It is
186 * not recommended for use in production
187 *
188 * @link https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html#smtp-credentials-convert
189 *
190 * @param CredentialsInterface $creds
191 * @param string $region
192 *
193 * @return string
194 */
195 public static function generateSmtpPasswordV4(CredentialsInterface $creds, $region)
196 {
197 $key = $creds->getSecretKey();
198
199 $date = "11111111";
200 $service = "ses";
201 $terminal = "aws4_request";
202 $message = "SendRawEmail";
203 $version = 0x04;
204
205 $signature = self::sign($date, "AWS4" . $key);
206 $signature = self::sign($region, $signature);
207 $signature = self::sign($service, $signature);
208 $signature = self::sign($terminal, $signature);
209 $signature = self::sign($message, $signature);
210 $signatureAndVersion = pack('c', $version) . $signature;
211
212 return base64_encode($signatureAndVersion);
213 }
214
215 private static function sign($key, $message) {
216 return hash_hmac('sha256', $key, $message, true);
217 }
218
219 /**
220 * @internal
221 * @codeCoverageIgnore
222 */
223 public static function applyDocFilters(array $api, array $docs)
224 {
225 $b64 = '<div class="alert alert-info">This value will be base64 encoded on your behalf.</div>';
226
227 $docs['shapes']['RawMessage']['append'] = $b64;
228
229 return [
230 new Service($api, ApiProvider::defaultProvider()),
231 new DocModel($docs)
232 ];
233 }
234 }
235