To make that work what you want to do is move the plus sign outside of the brackets:
rule = r"[A-Z]+\@[A-Z]+\.[A-Z]+"
But note that email addresses can also have other characters, such as numbers and periods. A better rule would be something like:
rule = r"^[A-Z0-9\._+ '\"-]+\@[A-Z0-9]+\.[A-Z0-9]+"
That will check that at the start of the string you have some substring made of letters, numbers, or periods, underscores, dashes, plus signs, spaces or single or double quotes. Then an @. Then another substring made of letters and numbers. Then a period. Then finally another substring made entirely of letters at the end of the string.
But note that this still doesn't mean that the address is valid. Only that it might be. If you really do need to validate an email address the only way is to send them an email, and get them to respond.