Both can and may can be used to talk about possibility. But there is some difference between them. Can is used to talk about theoretical possibility; may is used to talk about factual possibility.
- The road may be blocked due to the procession. (Factual possibility.)
- Any road can be blocked. (Theoretical possibility – It is possible to block any road.)
- There may be a strike next week. (It is possible that there will be a strike next week.)
- Strikes can happen any time. (It is possible for strikes to happen any time.)
- If you drive carelessly, you may have an accident. (Factual possibility)
- Accidents can happen any time. (Theoretical possibility)
When we talk about possibility, could often means the same as may or might.
- You may/might/could be right.
May not and Cannot
May not suggests improbability. Cannot suggests impossibility.
- We may not go camping this summer. (= It is possible that we may not go camping.)
- We cannot go camping this summer. (= It is not possible for us to go camping this summer.)