Invio di e-mail dal lato server

1

Ho bisogno di leggere alcune delle tue opinioni. Sto sviluppando un'app desktop (.net / winform) per mantenere i dati in un unico posto. Viene utilizzato da diversi client e i dati vengono archiviati in MS SQL Server (arch del client-server)

Una delle funzioni è poter inviare notifiche via email quando le condizioni sono soddisfatte. Non ho mai fatto qualcosa di simile, quindi non riesco a capire il modo migliore per implementarlo.

Le e-mail vengono inviate ogni giorno. Non hanno allegati né contenuti pesanti. Semplicemente testo.

  • Invia mail direttamente da SQL? Procedura memorizzata?

  • Crea un'app separata per gestirlo? (In esecuzione sul lato server).

  • Utilizzare un'attività di pianificazione? (Windows Server)

  • Utilizza un'app di terze parti?

Spero che qualcuno sappia qual è il modo migliore per farlo.

Grazie per il tuo tempo e amp; risposte.

    
posta Jaxedin 24.04.2014 - 02:54
fonte

2 risposte

2

Non hai un componente lato server in esecuzione adesso?

Eviterei che SQL Server inviasse la stessa Email.

Se hai solo bisogno di codice da qualche parte per svegliarti di tanto in tanto e verificare condizioni specifiche e intervenire, potresti scrivere una semplice app per console e utilizzare l'utilità di pianificazione di Windows sul server per eseguirla ogni tanto. Se le condizioni sono corrette, invia i tuoi messaggi e-mail, altrimenti, basta uscire pulito. Controlla di nuovo la volta successiva che l'utilità di pianificazione attiva l'app della console.

Oppure potresti scrivere un servizio di Windows per fare essenzialmente la stessa cosa, tranne per il fatto che useresti l'API di attività oi timer di Windows per svegliarti di tanto in tanto e verificare le condizioni appropriate. Il servizio sarà un po 'più complicato della programmazione di una semplice app per console. Esistono problemi di installazione del servizio. Non è possibile che il codice del lavoratore blocchi il thread principale in cui stai ascoltando per cose importanti come i messaggi di controllo del servizio. Anche il tuo codice lavoratore deve essere reattivo a questi eventi. Quindi se ricevi un messaggio di spegnimento, devi rispondere ad esso in un ragionevole lasso di tempo (un secondo o due, non un minuto o due). Probabilmente vuoi prendere in considerazione un tipo di progettazione basata sulla coda che può inviare metà dei messaggi, chiudersi, risvegliare e inviare l'altra metà senza perdere il posto, e così via.

Se non sei esperto su problemi come l'installazione del servizio e la sincronizzazione dei thread e gli eventi di controllo del servizio, farei semplicemente la semplice app per console e userai l'Utilità di pianificazione di Windows. "Low tech" può effettivamente essere una specie di cosa bellissima.

Ma per reiterare, sicuramente non lo farei direttamente da SQL Server. Solo perché è possibile (le stored procedure estese .NET) non significa che dovresti. : -)

    
risposta data 24.04.2014 - 06:14
fonte
1

Puoi inviare email direttamente da SQL Server , a condizione che tu l'abbia configurato per l'invio di e-mail . In base ai requisiti dichiarati, questo potrebbe essere il metodo più semplice da utilizzare. Significherebbe anche un minore sforzo di sviluppo in quanto non sarebbe necessario creare un'applicazione o un servizio per fare qualcosa che è già incorporato in SQL Server.

Se si dispone di diversi processi che devono inviare e-mail con un numero di processi al di fuori di SQL Server, allora potrebbe essere nel vostro interesse creare / acquistare un'applicazione / servizio che invia email. Se hai già IIS configurato sul server, puoi usarlo per inviare le tue email .

Per quanto riguarda l'attività pianificata o l'app di terze parti, non lo farei con ciò che è già disponibile.

    
risposta data 24.04.2014 - 06:17
fonte

Leggi altre domande sui tag