Rules Scheduler (a sub-module of the rules module) for sending such eMails.
You would have to create a Rules Component (to actually send an appropriate eMail) and a rule (which schedules that Rules Component), which is similar to the exported rules shown in my answer to "How to send an email to an author on a specific date using date field specified in a node?". Just replace the "
field_weaning_date" by what corresponds to your "1 month before expiration date".
If you don't have an expiration date, you could also use something like "order creation date", and combine that with (eg) "after 5 months from now" (for a license of 6 months). And if in the same rule you'd want to combine this logic for licenses that expire after 6 months, or 1 year, or 2 years, you can do so by using either the Conditional Rules module, or a Rules Component (in which you include Rules Conditions about the expiration date).
Obviously, you'd want to use some Rules Event that corresponds to something like your "Customer purchases license".
PS: I'm assuming this question is about D7.