2010-03-09 5 views
3

Je suis relativement nouveau dans les bases de données, veuillez me pardonner si ma requête semble triviale. Je dois envoyer des e-mails en masse à tous les contacts répertoriés dans un tableau particulier. Le corps de l'e-mail est stocké dans un fichier .doc qui commence comme Cher M. _______. Le serveur SQL lira ce fichier, ajoutera le nom de famille du contact dans l'espace vide et l'enverra à l'adresse e-mail correspondante pour ce nom de famille. Des idées sur la façon de procéder avec cela?Envoyer un e-mail en masse à partir de SQL Server 2008

Toute idée, suggestion, conseil sera grandement appréciée.

Merci!

Répondre

6

Base de données = base de données. Stockage de données S'il vous plaît ne faites pas votre base de données pauvres envoyer des milliers de courriels. Ce n'est pas waht c'est fait pour.

Écrivez une application qui fait cela. Multi-threadé. Utilisation des données de la base de données et stockage des résultats/statuts ici.

4

Je ne conseille de ne pas utiliser la base de données pour envoyer des spams, mais vous pouvez envoyer des e-mails via la base de données en utilisant:

EXEC msdb.dbo.sp_send_dbmail ...

Je ne sais pas comment cet impact réel de votre performances de la base de données (SELECT/INSERT/UPDATE/DELETE) mais ce n'est pas mon appel.

http://technet.microsoft.com/en-us/library/ms190307.aspx

sp_send_dbmail [ [ @profile_name = ] 'profile_name' ] 
    [ , [ @recipients = ] 'recipients [ ; ...n ]' ] 
    [ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ] 
    [ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ] 
    [ , [ @subject = ] 'subject' ] 
    [ , [ @body = ] 'body' ] 
    [ , [ @body_format = ] 'body_format' ] 
    [ , [ @importance = ] 'importance' ] 
    [ , [ @sensitivity = ] 'sensitivity' ] 
    [ , [ @file_attachments = ] 'attachment [ ; ...n ]' ] 
    [ , [ @query = ] 'query' ] 
    [ , [ @execute_query_database = ] 'execute_query_database' ] 
    [ , [ @attach_query_result_as_file = ] attach_query_result_as_file ] 
    [ , [ @query_attachment_filename = ] query_attachment_filename ] 
    [ , [ @query_result_header = ] query_result_header ] 
    [ , [ @query_result_width = ] query_result_width ] 
    [ , [ @query_result_separator = ] 'query_result_separator' ] 
    [ , [ @exclude_query_output = ] exclude_query_output ] 
    [ , [ @append_query_error = ] append_query_error ] 
    [ , [ @query_no_truncate = ] query_no_truncate ] 
    [ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ] 

Je ne sais pas comment vous pouvez modifier le fichier .DOC de SQL, de sorte que vous pourriez avoir à exécuter cela comme un publipostage de Word, en utilisant SQL Server comme source de données:

http://msdn.microsoft.com/en-us/library/aa140183%28office.10%29.aspx

4

SQL server n'est pas un serveur de messagerie.

Vous pouvez exporter les informations et utiliser un fournisseur externe pour envoyer le courrier en nombre (s'il y a plusieurs milliers de messages à envoyer) ou écrire une application qui lit les données, remplace les espaces réservés par les valeurs et envoie le courrier en utilisant votre sociétés serveur SMTP. Ce sera environ 200 lignes de code en C# .NET donc c'est assez trivial.

2

J'ai déjà utilisé le produit SQLAnswersMail pour SQL Server 2000 et il offre de nombreuses fonctionnalités telles que la fusion de messages.

Oui, SQL Server est une base de données, mais je l'ai trouvé idéal pour héberger les données et planifier des tâches pour générer des courriels (nous n'avons pas exécuté un relais de messagerie sur le serveur SQL lui-même). Cela permet également d'envoyer des résultats de requête personnalisés aux destinataires. Je ne suis pas sûr si cela a été rendu obsolète par toute la gestion améliorée des courriers électroniques introduite avec SQL Server 2005. Une exigence majeure que SQL Server 2000 ne pouvait pas gérer avec les anciens profils MAPI était de pouvoir envoyer à partir de plusieurs adresses email.