Use the email id or other unique field as the primary key so end user will not be able to use the same value again to avail the coupons in future.
How does the e-mail get triggered? You can include Query logic in the workflow to check the Delivery logs and determine whether they have already received the delivery.
Along with the delivery logs, you can enable tracking logs as well. It can be used to track whether the recipient has opened the mail or clicked any link in the mail to avail coupon.