Skip to content

Commit

Permalink
Updated README files and fixed a bug in OptInHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
Travis Swientek committed Aug 16, 2013
1 parent 143414f commit 522f731
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 39 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ $mg = new Mailgun("key-example");
$domain = "example.com";

# Now, issue a GET against the Logs endpoint.
$mg->get('{$domain}/log', array('limit' => '[email protected]',
'skip' => '[email protected]');
$mg->get("$domain/log", array('limit' => 25,
'skip' => 0);
```

For usage examples on each API endpoint, head over to our official documentation pages.
Expand Down
2 changes: 1 addition & 1 deletion src/Mailgun/Lists/OptInHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public function validateHash($secretAppId, $uniqueHash){
$concatStrings = $secretAppId . "" . $urlParameters->r;

if($urlParameters->s == hash('md5', $concatStrings)){
$returnArray = array('recipientAddress' => $urlParameters->r, 'mailingList' => $mailingList);
$returnArray = array('recipientAddress' => $urlParameters->r, 'mailingList' => $urlParameters->l);
return $returnArray;
}
return false;
Expand Down
79 changes: 43 additions & 36 deletions src/Mailgun/Lists/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ There is currently one utility provided.

OptInHandler: Provides methods for authenticating an OptInRequest.

The typical flow for using this utility would be as follow:
(Recipient Requests Subscribe) -> [Generate Opt In Link] -> [Email Recipient Opt In Link]
(Recipient Clicks Opt In Link) -> [Validate Opt In Link] -> [Subscribe User] -> [Send final confirmation]
The typical flow for using this utility would be as follows:
**Recipient Requests Subscribe** -> [Validate Recipient Address] -> [Generate Opt In Link] -> [Email Recipient Opt In Link]
**Recipient Clicks Opt In Link** -> [Validate Opt In Link] -> [Subscribe User] -> [Send final confirmation]

The above flow is modeled below.

Expand All @@ -20,32 +20,39 @@ Usage - Opt-In Handler (Recipient Requests Subscribe)
Here's how to use Opt-In Handler to validate Opt-In requests.

```php
# First, instantiate the SDK with your API credentials and domain.
$mg = new Mailgun("key-example");
$domain = "example.com";
# First, instantiate the SDK with your API credentials, domain, and required parameters for example.
$mg = new Mailgun('key-example');
$mgValidate = new Mailgun('pub-key-example');

# Next, instantiate an OptInHandler object from the SDK.
$optInHandler = $mg->OptInHandler();

# Next, define necessary variables and generate a hash.
$domain = 'example.com';
$mailingList = '[email protected]';
$secretPassphrase = 'a_secret_passphrase';
$recipientAddress = '[email protected]'
$generatedHash = $optInHandler->generateHash($mailingList, $secretPassphrase, $recipientAddress);

# Now, let's send a confirmation to the recipient with our link.
$mg->sendMessage($domain, array('from' => '[email protected]',
'to' => '[email protected]',
'subject' => 'Please Confirm!',
'html' => '<html><body>Hello,<br><br>You have requested to be subscribed
to the mailing list {$mailingList}. Please <a
href="http://yourdomain.com/subscribe.php?hash=$generatedHash">confirm
</a> your subscription.<br><br>Thank you!</body></html>'));

# Finally, let's add the subscriber to a Mailing List, as unsubscribed, so we can track non-conversions.
$mg->post('{$domain}/lists/{$mailingList}', array('address' => $recipientAddress,
'subscribed' => 'no',
'upsert' => 'yes');
$recipientAddress = '[email protected]';

# Let's validate the customer's email address, using Mailgun's validation endpoint.
$result = $mgValidate->get('address/validate', array('address' => $recipientAddress));

if($result->http_response_body->is_valid == true){
# Next, instantiate an OptInHandler object from the SDK.
$optInHandler = $mg->OptInHandler();

# Next, generate a hash.
$generatedHash = $optInHandler->generateHash($mailingList, $secretPassphrase, $recipientAddress);

# Now, let's send a confirmation to the recipient with our link.
$mg->sendMessage($domain, array('from' => '[email protected]',
'to' => $recipientAddress,
'subject' => 'Please Confirm!',
'html' => "<html><body>Hello,<br><br>You have requested to be subscribed
to the mailing list $mailingList. Please <a
href=\"http://yourdomain.com/subscribe.php?hash=$generatedHash\">
confirm</a> your subscription.<br><br>Thank you!</body></html>"));

# Finally, let's add the subscriber to a Mailing List, as unsubscribed, so we can track non-conversions.
$mg->post("lists/$mailingList/members", array('address' => $recipientAddress,
'subscribed' => 'no',
'upsert' => 'yes'));
}
```

Usage - Opt-In Handler (Recipient Clicks Opt In Link)
Expand All @@ -54,8 +61,8 @@ Here's how to use Opt-In Handler to validate an Opt-In Hash.

```php
# First, instantiate the SDK with your API credentials and domain.
$mg = new Mailgun("key-example");
$domain = "example.com";
$mg = new Mailgun('key-example');
$domain = 'example.com';

# Next, instantiate an OptInHandler object from the SDK.
$optInHandler = $mg->OptInHandler();
Expand All @@ -72,16 +79,16 @@ if($hashValidation){
$validatedList = $hashValidation['mailingList'];
$validatedRecipient = $hashValidation['recipientAddress'];

$mg->put('{$domain}/lists/{$validatedList}/{$validatedRecipient}',
array('address' => $recipientAddress,
'subscribed' => 'yes');
$mg->put("lists/$validatedList/members/$validatedRecipient",
array('address' => $validatedRecipient,
'subscribed' => 'yes'));

$mg->sendMessage($domain, array('from' => '[email protected]',
'to' => '[email protected]',
'subject' => 'Please Confirm!',
'html' => '<html><body>Hello,<br><br>We\'ve successfully subscribed
you to the list, {$mailingList}!<br><br>Thank you!
</body></html>'));
'to' => $validatedRecipient,
'subject' => 'Confirmation Received!',
'html' => "<html><body>Hello,<br><br>We've successfully subscribed
you to the list, $validatedList!<br><br>Thank you!
</body></html>"));
}
```

Expand Down

0 comments on commit 522f731

Please sign in to comment.