Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
wafi
Starting Member
12 Posts |
Posted - 2004-03-10 : 08:51:02
|
| Hi all,,Iam trying to Send mail using CDO.NewMail in a stored procedure,it works correctly but the problem is if the Body message length is more than 4000 chars it will send only the first 4000 chars Anyone cuold help plzBest RegardsWafi MohtasebWafi Mohtaseb |
|
|
despy
Starting Member
9 Posts |
Posted - 2004-03-11 : 04:22:08
|
| My guess would be you're using a nvarchar field at some point which has a maximum of 4000 characters (8000 bytes @ 2 bytes per characters). Do you want to post the code you're using? |
 |
|
|
wafi
Starting Member
12 Posts |
Posted - 2004-03-11 : 05:43:09
|
| Thanks i wil try the nvarcharand i will see it it worksany way here is the code i used im my Stored procedureCREATE PROCEDURE SEND_EMAIL_FOR_UNACTIVATED_CANDIDATESASDECLARE @FROM VARCHAR(100)SET @FROM = 'WebMaster@Test.com'DECLARE @TO VARCHAR(100)DECLARE @SUBJECT VARCHAR(100)SET @SUBJECT = 'Reminder to activate your account!'--#######################################################/*Get The Message Body From Email_Template*/DECLARE @LOGO VARCHAR(200) SET @LOGO = 'logo'DECLARE @Original_Msg VARCHAR(8000)DECLARE EMAIL_TEMP CURSOR FOR SELECT Template_Text FROM Email_Templates WHERE Email_Type = 1OPEN EMAIL_TEMPFETCH NEXT FROM EMAIL_TEMP INTO @Original_MsgCLOSE EMAIL_TEMPDEALLOCATE EMAIL_TEMPSET @Original_Msg = REPLACE(@Original_Msg,'_logo_',@LOGO)--#######################################################DECLARE @BODY VARCHAR(8000)DECLARE @MAILID INTDECLARE @HR INTDECLARE @BODYFORMAT INTDECLARE @MAILFORMAT INTSET @BODYFORMAT = 0SET @MAILFORMAT = 0DECLARE @CAND_ID INTDECLARE @UserName VARCHAR(100)DECLARE @Password VARCHAR(100)DECLARE @Last_Name VARCHAR(100)--Get candidates who dose nto complete there registrationDECLARE CAND CURSOR FOR SELECT Candidate_Id,Email_Address,Username,Password,Last_Name FROM CANDIDATES WHERE Status_Id = 1 AND DATEDIFF(DAY,Email_Date,GETDATE()) >= 7 AND Send_Email = 1OPEN CANDFETCH NEXT FROM CAND INTO @CAND_ID,@TO,@UserName,@Password,@Last_NameWHILE @@FETCH_STATUS = 0 BEGIN --Mail Body Settingd SET @BODY = @Original_Msg SET @BODY = REPLACE(@BODY,'_LastName_', ' ' +@Last_Name+' ') SET @BODY = REPLACE(@BODY,'_username_', ' ' +@username+' ') SET @BODY = REPLACE(@BODY, '_password_', ' ' +@Password +' ') --Create CDO Mail Com object and set its properites EXEC @HR = sp_OACreate 'CDONTS.NewMail', @MAILID OUT EXEC @HR = sp_OASetProperty @MAILID, 'From',@FROM EXEC @HR = sp_OASetProperty @MAILID, 'Body', @BODY EXEC @HR = sp_OASetProperty @MAILID, 'Subject', @SUBJECT EXEC @HR = sp_OASetProperty @MAILID, 'BodyFormat', @BODYFORMAT EXEC @HR = sp_OASetProperty @MAILID, 'MailFormat', @MAILFORMAT EXEC @HR = sp_OASetProperty @MAILID, 'To', @TO EXEC @HR = sp_OAMethod @MAILID, 'Send', NULL EXEC @HR = sp_OADestroy @MAILID UPDATE Candidates SET Email_Date = GETDATE() + 7 WHERE Candidate_Id = @CAND_ID PRINT @BODY FETCH NEXT FROM CAND INTO @CAND_ID,@TO,@UserName,@Password,@Last_Name ENDCLOSE CAND DEALLOCATE CANDWafi Mohtaseb |
 |
|
|
|
|
|
|
|