In un'applicazione Web MVC, invio spesso e-mail.Il modello o il controller dovrebbe essere responsabile per l'invio di e-mail?
Di solito lo faccio nel controller, mentre carico tutte le viste dal controller (incluse le viste e-mail).
Ora, tuttavia, ho un codice in cui l'e-mail invia dal modello.
Da quale livello viene generalmente inviata la posta elettronica? Importa? Lo ha bisogno di per essere coerente?
Beh, dipende, l'utente invia un'email, quindi visualizza una pagina di conferma? Se è così, dovrebbe essere fatto in Controller (invia e-mail, mostra vista di conferma). Se si tratta di una cosa di background/admin, il controller dovrebbe chiamare un metodo in un livello di servizio, come indicato nella risposta seguente. – RPM1984
Direi che l'invio effettivo dell'email dovrebbe ancora essere fatto in un servizio. Il controller dovrebbe creare un'istanza del servizio, passare i dati ad esso, ottenere una risposta e quindi chiamare la vista per eseguire il rendering dei dati risultanti. –