|
|
|
SSC Veteran
      
Group: General Forum Members
Last Login: Tuesday, May 21, 2013 7:21 AM
Points: 204,
Visits: 689
|
|
I have a sql table that contains 100 email addresses & a word document that needs to be sent to these recipients. Does anyone have a script to read through a table & send an email with a document attachment I can use ?
thx!
|
|
|
|
|
SSChampion
        
Group: General Forum Members
Last Login: Yesterday @ 3:33 PM
Points: 11,648,
Visits: 27,768
|
|
so you want to send 100 individualized emails, each with the same (or different?) attachment?(hint: cursor) or do you want to send a single email, with 100 To:/CC:/BCC:/ and the same attachment?
and finally, does the attachment exist on the SQL server?
Lowell
--There is no spoon, and there's no default ORDER BY in sql server either. Actually, Common Sense is so rare, it should be considered a Superpower. --my son
|
|
|
|
|
SSC Veteran
      
Group: General Forum Members
Last Login: Tuesday, May 21, 2013 7:21 AM
Points: 204,
Visits: 689
|
|
I want to send 100 different emails (Notifying customers of a change) & yes, the word document will be on the Sql server.
thx!
|
|
|
|
|
SSChampion
        
Group: General Forum Members
Last Login: Yesterday @ 3:33 PM
Points: 11,648,
Visits: 27,768
|
|
a rough example of multiple recipients from a query, unique emails, same attachment:
declare @isql varchar(2000), @email varchar(64) declare c1 cursor for select distinct email FROM DatabaseName.dbo.SomeTable WHERE CampaignID = 42 and dbo.IsValidEmail(email) = 1 open c1 fetch next from c1 into @email While @@fetch_status <> -1 begin declare @body1 varchar(4000) set @body1 = 'Latest documentation For You. ' + CONVERT( VARCHAR( 20 ), GETDATE(), 113 ) + ' '
EXEC msdb.dbo.sp_send_dbmail @recipients=@email, @subject = 'Latest documentation ', @body = @body1, @body_format = 'HTML', @file_attachments = 'c:\ServerAttachments\ERP.pdf' fetch next from c1 into @email end close c1 deallocate c1
Lowell
--There is no spoon, and there's no default ORDER BY in sql server either. Actually, Common Sense is so rare, it should be considered a Superpower. --my son
|
|
|
|
|
SSC Veteran
      
Group: General Forum Members
Last Login: Tuesday, May 21, 2013 7:21 AM
Points: 204,
Visits: 689
|
|
Now I feel really dumb, but what is "CampaignID" ?
|
|
|
|
|
SSChampion
        
Group: General Forum Members
Last Login: Yesterday @ 3:33 PM
Points: 11,648,
Visits: 27,768
|
|
it's just example WHERE statement for the data; your query which gathers the "right" emails would be very specific to your business logic, and especially the WHERE statement which decides whether someone gets an email or not;
i just wanted to show, as an example, you don't send to every email in a table, there should be logic. same thing for distinct email, if someone is in the table more than once, you don't want to look unprofessional by sending them multiple emails.
finally, you can see i was using a udf to make sure an email was valid...no sense trying to send to an empty string, or an email that doesn't have the @ symbol in it.
Lowell
--There is no spoon, and there's no default ORDER BY in sql server either. Actually, Common Sense is so rare, it should be considered a Superpower. --my son
|
|
|
|
|
SSC Veteran
      
Group: General Forum Members
Last Login: Tuesday, May 21, 2013 7:21 AM
Points: 204,
Visits: 689
|
|
Great, thank you much!!!!
|
|
|
|