Django でアプリケーションを開発しています。フォームのクラスが格納されているforms.pyに、テキスト ボックスに入力されたすべての電子メールが適切な形式 (person@site.com) に従っていることを確認するクリーンな関数を記述しました。
この clean 関数では、EmailMessage オブジェクトを使用して電子メール メッセージを作成します。
def clean_recipients(self):
rec = self.data['recipients'].split(",")
recList = []
for recipient in rec:
reci = str.strip(str(recipient))
recList.append(reci)
message = (self.data['subject'], self.data['message'], 'hi@world.com', recList)
mail = EmailMessage(self.data['subject'], self.data['message'], 'from@somebody.com', ['email_list@mysite.org'], recList)
try:
mail.send(fail_silently=False)
except Exception:
raise forms.ValidationError('Please check inputted emails for validity.')
return self.data['recipients']
ただし、「入力したメールの有効性を確認してください」という例外が発生します。テキストボックスに入力した内容に関係なく、フォームで発生することはありません。テキストボックスにランダムな文字を入力すると、メッセージは送信されません。
メールが正しく送信されなかった場合の適切なキャッチ方法は何ですか?
ありがとうございました。