I think BLL is data. It should not include the SendEmail method. BLL is a place to cache data, manipulate it, and perform business related calculations. Sending email is a business process, but the code that actually sends the email must be outside the BLL namespace.
Is BLL only data?
BLL is not about data; it's all about what you need to do with data.
The user will only interact with the external presentation forms of any application that is commonly known as the presentation layer .
/ . -. , , , DAL - .
, . BLL, , .
, BLL DAL .
BLL . DAL . BLL , - - .
BLL , - . .
BLL -. , -. SendEmail - ?
, BLL , ( , demeter , wiki/google it). BLL .
, , , DAL (Data Access Layer). , / .. , .
BLL ... ( < ).
DAL - .
, , SendMail Utility, , SendMail BLL.
- , , , - , . , , , , , .
(, ) -, .
, , - - , , .
, , - .
-, - .
- , .
, . , - , "" , , .
- , -. . -. - , , (DAL) , , , . - .
In past teams, I always worked on specific functions that can appear in any program / business, for example, sending an email to my own common class / method. The only time I saw a BLL class related to email was when a business rule was written to send email. In this case, BLL knew the email text to send, but created an instance of a common email class to send email.