Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Пытаюсь послать письмо с аттачем... Письмо посылается, но без аттача  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
declare	@user_name varchar(100),
	@user_password varchar(100),
	@From varchar(100) ,
   	@To varchar(100) ,
   	@Subject varchar(100),
   	@Body varchar(4000),
	@Attachment varchar(1000),
   	@proxy varchar(100),
   	@smtp_server varchar(100)
select @user_name='user',@user_password='pass',@From='user@some_address.ru',@To='some_name@address.ru',
@Subject='test',@Body='mailto:me@address.ru',@proxy='proxy_sting',@smtp_server='smtp_server_string',
@Attachment='c:\some_file.txt'

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

--************* 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.
--Setting proxy
   EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/urlproxyserver").Value',@proxy
-- 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_server 
--autentication
--using autentication
   EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value', '1' 
--user name
   EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusername").Value', @user_name
--user password
   EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value', @user_password
   EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpaccountname").Value', @user_name
   EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("urn:schemas:mailheader:content-language").Value', "windows-1251"
   
   -- 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 you are using HTML e-mail, use 'HTMLBody' instead of 'TextBody'.
   EXEC @hr = sp_OASetProperty @iMsg, 'TextBody', @Body
--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
--Вот с аттачментом трабла
   EXEC @hr = sp_OAMethod @iMsg, 'AddAttachment', @Attachment, null
--ошибка -2147211483
--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   EXEC @hr = sp_OAMethod @iMsg, 'Send', NULL

   EXEC @hr = sp_OADestroy @iMsg
3 май 05, 14:17    [1513351]     Ответить | Цитировать Сообщить модератору
 Re: Пытаюсь послать письмо с аттачем... Письмо посылается, но без аттача  [new]
Glory
Member

Откуда:
Сообщений: 104760
Используйте sp_OAGetErrorInfo и получите описание ошибки
3 май 05, 14:19    [1513367]     Ответить | Цитировать Сообщить модератору
 Re: Пытаюсь послать письмо с аттачем... Письмо посылается, но без аттача  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Возвращает

Source: ODSOLE Extended Procedure
Description: sp_OAMethod usage: ObjPointer int IN, MethodName varchar IN [, @returnval <any> OUT [, additional IN, OUT, or BOTH params]]

Но не понимаю, как разрулить
3 май 05, 14:28    [1513398]     Ответить | Цитировать Сообщить модератору
 Re: Пытаюсь послать письмо с аттачем... Письмо посылается, но без аттача  [new]
Glory
Member

Откуда:
Сообщений: 104760
ObjPointer int IN, MethodName varchar IN [, @returnval <any> OUT [, additional IN, OUT, or BOTH params]]

А у вас что стоит на этом месте ?
3 май 05, 14:41    [1513435]     Ответить | Цитировать Сообщить модератору
 Re: Пытаюсь послать письмо с аттачем... Письмо посылается, но без аттача  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Glory
ObjPointer int IN, MethodName varchar IN [, @returnval <any> OUT [, additional IN, OUT, or BOTH params]]

А у вас что стоит на этом месте ?


Тут у меня null ... мне ничего возвращать не надо, надо передать... а имени параметра я не знаю..

Переписал:

EXEC @hr = sp_OAMethod @iMsg, 'AddAttachment', null, @parameter= @Attachment

Пишет, что неизвестное имя... а какое у этого параметра имя... загадка для меня.

В VBA опять же пишу iMsg.AddAttachment(файл_для_аттача)

Как выполнить метод без параметров - понятно, а как с параметрами? где взять имя параметра?
3 май 05, 14:46    [1513455]     Ответить | Цитировать Сообщить модератору
 Re: Пытаюсь послать письмо с аттачем... Письмо посылается, но без аттача  [new]
Glory
Member

Откуда:
Сообщений: 104760
а имени параметра я не знаю..
Там не нужно никаких имен если вы знаете количество и порядок параметров метода
3 май 05, 15:11    [1513531]     Ответить | Цитировать Сообщить модератору
 Re: Пытаюсь послать письмо с аттачем... Письмо посылается, но без аттача  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Понял я на что он ругается... возвращаемое значение не должно быть NULL.
3 май 05, 15:21    [1513560]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить