Signal are synchronous, so it will be bad to have mailing done in the save signal because it will slowdown the save process and will not scale.
I suggest to use asynchronous task via queue like django-rq or celery. And you can just put task in the queue in the post_save signal. This approach will scale well and wont interfere with normal site functioning.