.NET Best Method to Send Email (System.Net.Mail has issues)

后端 未结 7 1040
被撕碎了的回忆
被撕碎了的回忆 2020-12-14 19:17

This seems to be pretty straight forward. I need to send email from some ASP.NET applications. I need to do this consistently without strange errors and without CPU utilizat

7条回答
  •  难免孤独
    2020-12-14 19:50

    I send most of my mail using a Sproc. I can even attach a file.

    
    CREATE PROCEDURE [dbo].[sendMail_With_CDOMessage]  
        @to VARCHAR(64), 
        @CC VARCHAR(1024)='',
        @BCC VARCHAR(1024)='',
        @subject VARCHAR(500)='', 
        @body VARCHAR(8000)='' ,
        @from VARCHAR(64),
        @filename VARCHAR(255)='',
        @priority INT = 0
    AS  
    BEGIN  
        SET NOCOUNT ON  
    
        DECLARE  
            @handle INT,  
            @return INT,  
            @s VARCHAR(64),  
            @sc VARCHAR(1024),  
            @up CHAR(27),   
            @server VARCHAR(255)  
    
        SET @s = '"http://schemas.microsoft.com/cdo/configuration/'  
    
        SELECT  
            @s = 'Configuration.Fields(' + @s,  
            @up = 'Configuration.Fields.Update',
            @server = 'smtp.yourdomain.com' 
    
    
    
        EXEC @return = sp_OACreate 'CDO.Message', @handle OUT  
        SET @sc = @s + 'sendusing").Value'  
        EXEC @return = sp_OASetProperty @handle, @sc, '2'  
        SET @sc = @s + 'smtpserver").Value'  
        EXEC @return = sp_OASetProperty @handle, @sc, @server  
        EXEC @return = sp_OAMethod @handle, @up, NULL  
        EXEC @return = sp_OASetProperty @handle, 'To', @to  
        EXEC @return = sp_OASetProperty @handle, 'CC', @CC 
        EXEC @return = sp_OASetProperty @handle, 'BCC', @BCC 
        EXEC @return = sp_OASetProperty @handle, 'From', @from  
        EXEC @return = sp_OASetProperty @handle, 'Subject', @subject  
        EXEC @return = sp_OASetProperty @handle, 'HTMLBody', @body    
        EXEC @return = sp_OASetProperty @handle, 'Priority', 'cdoHigh'  
    
        IF @filename IS NOT NULL  
            EXEC @return = sp_OAMethod @handle, 'AddAttachment', NULL, @filename  
    
        EXEC @return = sp_OAMethod @handle, 'Send', NULL  
        IF @return  0  
        BEGIN  
            PRINT 'Mail failed.'  
            IF @from IS NULL  
                PRINT 'From address undefined.'  
            ELSE  
                PRINT 'Check that server is valid.' 
        END 
        ELSE  
            PRINT 'Mail sent.'  
    
        EXEC @return = sp_OADestroy @handle  
    END  
    
    

提交回复
热议问题