none
SQL Server 2000 Envio de Email sem umar o Exchange RRS feed

  • Pergunta

  •  

    Oi pessoal!!

     

    To com o seguinte problema: estou usando o sql 2000 e tenho uma stored procedure que deverá ser executada diariamente. O resultado dela deverah ser enviado por email. Jah dei uma olhada e vi que posso fazer isso criando um job no sql que irah executar a procedure e atraves do Outlook e do SQL Server Agent o envio do email eh possivel, desde que eu tenha uma conta ativa no servidor exchange. Mas, dessa forma eu nao posso fazer... o meu objetivo eh soh enviar o email e eu nao tenho uma conta no exchange. Serah que vcs podem me ajudar??

     

    [ ]s pra todos.

     

    Aline.


    quinta-feira, 5 de abril de 2007 20:10

Todas as Respostas

  • Olá Aline,

     

    O procedimento mais adequado para este processo é o xp_sendmail, mas para executá-lo é necessário algumas configurações. No link a seguir você encontrará passo a passo para realizar a configuração:

     

    http://www.linhadecodigo.com.br/artigos.asp?id_ac=406&pag=1

     

    Espero ter ajudado.

    quinta-feira, 5 de abril de 2007 23:30
  • USE A PROCEDURE ABAIXO, CONFIGURE apenas O SMTP E PORTA

    Espero ter ajudado








    ---------------------------------------------------------------------------------------------------
    -- Descrição    : Envia Emails

    -- Exemplo:
    /*

        EXEC sp_SendMail
            @From ="TESTE123@GMAIL.COM",
            @To = 'TESTE@GMAIL.COM',
            @Subject = 'Teste123',
            @Body = 'Teste 234'
    */
    --
    CREATE PROCEDURE [dbo].[sp_SendMail]
        @From varchar(100) ,
        @To varchar(100) ,
        @Subject varchar(100)=" ",
        @Body varchar(8000) =" ",
        @AddAttachment varchar(8000) = NULL
    AS

    /******************************************
    This stored procedure takes the parameters and sends an e-mail. All the mail configurations are hard-coded in the stored procedure. Comments are added to the stored procedure where necessary. References to the CDOSYS objects are at the following MSDN Web
    site: http://msdn.microsoft.com/library/default.asp?url=/ library/en-us/cdosys/html/_cdosys_messaging.asp
    *******************************************/

    Declare @iMsg int


    Declare @hr int
    Declare @x int
    Declare @source varchar(255)
    Declare @description varchar(500)
    Declare @output varchar(1000)

    --***** Create the CDO.Message Object *****
    EXEC @hr = sp_OACreate 'CDO.Message', @iMsg OUT

    --*****Configuring the Message Object *****

    -- This is to configure a remote SMTP server.
    -- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_schema_configuration_sendusing.asp
    EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields ("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'

    -- This is to configure the Server Name or IP address.

    -- Replace MailServerName by the name or IP of your SMTP Server.
    EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', 'smtp.voxage.com.br'

    -- Replace 25 by the PORT SMTP Server.
    EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.Fields ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")', '25'

    -- Save the configurations to the message object.
    EXEC @hr = sp_OAMethod @iMsg, 'Configuration.Fields.Update', null


    -- Set the e-mail parameters.
    EXEC @hr = sp_OASetProperty @iMsg, 'To', @To
    EXEC @hr = sp_OASetProperty @iMsg, 'From', @From
    EXEC @hr = sp_OASetProperty @iMsg, 'Subject', @Subject


    IF @AddAttachment IS NOT NULL
    BEGIN
        EXEC @hr = sp_OAMethod @iMsg, 'AddAttachment',@x OUT, @AddAttachment
    END


    -- If you are using HTML e-mail, use 'HTMLBody' instead of 'TextBody'.
    EXEC @hr = sp_OASetProperty @iMsg, 'HTMLBody', @Body
    EXEC @hr = sp_OAMethod @iMsg, 'Send', NULL


    -- Sample error handling.
        IF @hr <>0
         BEGIN
           EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
           IF @hr = 0
             BEGIN
               SELECT @output = '  Source: ' + @source
               PRINT  @output
               SELECT @output = '  Description: ' + @description
               PRINT  @output
             END
           ELSE
             BEGIN
               PRINT '  sp_OAGetErrorInfo failed.'
               RETURN
             END
         END

    -- Do some error handling after each step if you have to.
    -- Clean up the objects created.
    EXEC @hr = sp_OADestroy @iMsg





    GO
    sexta-feira, 6 de abril de 2007 14:07
  •  Oi Aline, ja tive este mesmo problema de não ter uma conta especifica no Exchange e resolvi o problema usando um protocolo SMTP, de uma olhada neste site http://www.sqldev.net/xp/xpsmtp.htm , é muito bom e facil de usar.

     

     

    Espero ter ajudado.

     

     

    Abraços.

    sexta-feira, 22 de junho de 2007 12:19
  • Aline,

     

    Na verdade tipo não é um problema mais sim uma regra que o SQL Server 2000 necessita para trabalhar com e-mail.

     

    No SQL Server 2005, este necessidade não existe mais.

    sexta-feira, 22 de junho de 2007 12:45
  •  

    Olá Aline,

     

    Veja esta solução "by Microsoft":

     

    http://support.microsoft.com/kb/312839

     

     

    Abraço

    sexta-feira, 22 de junho de 2007 13:12