July 10, 2001 at 12:00 am
Comments posted to this topic are about the content posted at http://www.sqlservercentral.com/columnists/kdas/xp_sendmail.asp
July 16, 2001 at 4:48 am
I had been looking for an article like this. Thank you. I still have the problem that sql2000 doesn't seem to like to send through Outlook express for instance. Is there a workaround for this or another very minimal other mail client that might work or is there a way to send straight to smtp server? Could there be a followup article about connecting the entire thing together?
Thanks, Bo
July 16, 2001 at 4:51 am
Here is the same thing avoiding CURSORs.
Use Test
GO
Declare @MyRecipients nvarchar (255)
Declare @MyMessage nvarchar (255)
Set @MyRecipients=''
Set @MyMessage = ‘Your timesheet is overdue, please send it ASAP.'
WHILE @MyRecipients IS NOT NULL
BEGIN
SELECT @MyRecipients = MIN ( email_address )
FROM Test_Table
WHERE enail_Address > @MyRecipients AND Status = 0
IF @MyRecipients IS NOT NULL
BEGIN
Print @MyRecipients
Exec Master.dbo.xp_sendmail @MyRecipients, @MyMessage
END
END
July 16, 2001 at 9:44 am
Thx for that code David, I might actually change mine ;)...I wanted to avoid cursors, but it was the first thing I could think of..bad habits die hard...
As to Bo's question, I read an article, I can't quite remember where, but someone had an article posted on how to use Outlook Express and Third Party mailers with xp_Sendmail..I'll see if I can find it.
Real Programmers don't comment their code. If it was hard to write it should be hard to understand.
July 24, 2001 at 2:10 pm
Very good information. I have done this before but never quite so eloquently.
====================
"Awful tired now, Boss. Dog tired."
====================
"Awful tired now, Boss. Dog tired."
http://www.dwacon.com
January 29, 2002 at 8:15 am
An excellent tip
Rex
Rex
February 11, 2002 at 4:14 pm
What about when the email name you are retrieving from a table is no longer valid? Any ideas on error processing?
Can't quite get this part to work properly, or it works okay until the 1st illegal name is encountered then "rolls back". Then retries x number of times (something you define) and then sends the emails out again until that first illegal address is encountered. Wish xp_sendmail had error processing and was documented better.
To make a long story short, if you try to process email addresses in a table within a proc, it can't roll back xp_sendmail operations and if you have set retry option up then you get duplicate emails sent to some humorless people!
March 11, 2002 at 8:43 am
I used the same code that's in the article for a recent project, and it works great. However, I noticed in the code that the first recipient will not receive the email.
1. This is because after you fetch their email address, you then check the FETCH_STATUS to make sure it's valid.
2. You then print the email address and fetch a new one.
3. Then the email is sent.
It seems that you would want to send the email before fetching the next record. Otherwise, someone will be left out.
Jason
April 23, 2002 at 7:00 am
Good thought provoking article, got some new ideas on e-mail and cursors.
May 6, 2002 at 8:15 pm
Do you have to have SQL Mail set up to use xp_sendmail?
May 6, 2002 at 10:10 pm
Yes, you have to have SQL Mail started prior to using xp_sendmail. You can start it through the GUI by using Enterprise Manager or you can use the T-SQL form of xp_startmail. Hope this helps. See Books Online for more specifics of xp_sendmail and xp_startmail.
Jason Delaune
May 9, 2002 at 12:38 pm
hmm... is there any way to send attachments with xp_sendmail? im working on an application for a call center that needs to generate info on a persons queue, dump them to an excel spreadsheet, and then send out the spreadsheets.
May 9, 2002 at 6:13 pm
Guys!
First of all thankx to Kunal for sharing this with us.
Now, my problem:- I'm using SQL Mail to send out Emails to Customers re: outstanding Invoices. I also use SQL Mail on the same box to send out emails to our Sales Reps with summaries of outstanding invoices. Now, I've set up multiple outlook profiles on the server. I tried using
xp_startmail @user = 'CreditControlDept'
xp_sendmail .... (to customers)
xp_stopmail @user = 'CreditControlDept'
xp_startmail @user = 'InvoiceTracker'
xp_sendmail...(to internal sales reps)
xp_stopmail @user = 'InvoiceTracker'
DOES NOT WORK!!! the profile does'nt switch at all. SQL Mail sends out all the emails using the profile that it started with. How can I use xp_startmail and xp_stopmail to switch between different user profiles.
Regards
Uday
May 13, 2002 at 8:14 am
I am a little confused the only way I got a mail session to work was to have a nt profile and outlook profile set up on the server then I was able to start the mail session.
How did you get a second outlook profile to work with a different name?
May 13, 2002 at 9:50 am
quote:
hmm... is there any way to send attachments with xp_sendmail? im working on an application for a call center that needs to generate info on a persons queue, dump them to an excel spreadsheet, and then send out the spreadsheets.
Viewing 15 posts - 1 through 15 (of 29 total)
You must be logged in to reply to this topic. Login to reply