powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / CDO
10 сообщений из 10, страница 1 из 1
CDO
    #32383616
kxmep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такая проблемка возникла...

Отсылаю письма с с вложением использую CDO - все работает
Если без вложения пишет следующее:
Код: plaintext
1.
Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x800ccc6a. Отклик сервера:  451  See http://pobox.com/~djb/docs/smtplf.html.


Все это происходит на серваке с вин2003.


На моем локальном серваке (вин2000сервер) письма успешно отправляются и с аттачем и без него.

Вот как я это делаю:
1. есть класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
using System;

namespace Util.Email
{
	public class tEmail
	{
		int cdoSendUsing =  2 ;
		string cdoSendUsingMethod =  "http://schemas.microsoft.com/cdo/configuration/sendusing" ;
		string cdoSMTPServer =  "http://schemas.microsoft.com/cdo/configuration/smtpserver" ;
		string cdoSMTPServerPort =  "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ;
		CDO.Message fMessage; 
		ADODB.Fields fFields;

		public tEmail(string Server)
		{
			fMessage = new CDO.Message();
			fFields = null;
			fFields = fMessage.Configuration.Fields;
			fFields[cdoSendUsingMethod].Value = cdoSendUsing;
			fFields[cdoSMTPServer].Value = Server;
			fFields[cdoSMTPServerPort].Value =  25 ;
			fFields.Update();
		}

		public tEmail(string Server, int Port)
		{
			fMessage = new CDO.Message();
			fFields = null;
			fFields = fMessage.Configuration.Fields;
			fFields[cdoSendUsingMethod].Value = cdoSendUsing;
			fFields[cdoSMTPServer].Value = Server;
			fFields[cdoSMTPServerPort].Value = Port;
			fFields.Update();
		}

		public void Send(string To, string From, string Subject, string Body)
		{
				fMessage.To = To;
				fMessage.From = From;
				fMessage.Subject = Subject;
				fMessage.TextBody = Body;
				
				fMessage.Send();
		}
	
		public void Attachment(string Filename)
		{
			fMessage.AddAttachment(Filename,  "", " ");
		}

	}
}


2. есть код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
			tEmail NewEmail = new tEmail( "172 . 16 . 6 . 1 ");

			//Если это раскоментарить, то ошибка не вылетает 
			//NewEmail.Attachment( "");

			NewEmail.Send(" inbox@inbox.ru ", " mail@mail.ru ", " Сообщение! ", " Вот оно сообщение!!!");




Кто-нибудь сталкивался с этим?

_____
kxmep
...
Рейтинг: 0 / 0
CDO
    #32384074
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВсе это происходит на серваке с вин2003.


На моем локальном серваке (вин2000сервер) письма успешно отправляются и с аттачем и без него.

может быть это баг в2003? уж больно ситуация корявая...

а какая версия студии/фреймворка используется?
...
Рейтинг: 0 / 0
CDO
    #32384088
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
похоже что это проблемы почтового сервера - поищите в гугле в группах темы на номер ошибки 0x800ccc6a
...
Рейтинг: 0 / 0
CDO
    #32384092
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такие предложения


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
0x800CCC6A   SMTP  451  ERROR PROCESSING       Error processing request.

You might try removing the affected account under OE's 
Tools/Accounts/Mail for the particular account.  Then close Outlook 
Express, reopen it and recreate the account exactly as instructed by the 
ISP involved.  It's possible that the account information has become 
corrupted.
 -- 
 
Jim Pickering, MVP/OE



есть и другие
...
Рейтинг: 0 / 0
CDO
    #32385544
kxmep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hDrummerа какая версия студии/фреймворка используется?
Microsoft Visual Studio .NET 2003
На моей машине вин2000сервер, Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573 (тут все работает)

На сервере вин2003, Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573
_____
kxmep
...
Рейтинг: 0 / 0
CDO
    #32385994
kxmep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо тем, кто пытался помочь!

...и не менее большое сорри, за то, что немного не тот кусок кода написал.

И так решение...

На самом деле в коде написано:
Код: plaintext
1.
2.
3.
4.
...
string vBody =  "\nВот оно сообщение!!!\n" ;
NewEmail.Send( "inbox@inbox.ru" ,  "mail@mail.ru" ,  "Сообщение!" , vBody);
...


В сообщении об ошибке ясно сказано:
Код: plaintext
1.
2.
3.
...
See http://pobox.com/~djb/docs/smtplf.html
...


Там в свою очередь написано:

...
What is a bare LF, anyway?
It is an ASCII linefeed (LF) character not preceded by an ASCII carriage-return (CR) character.
Every line in an Internet mail message is required to end with CR LF. The entire message ends with CR LF dot CR LF. 822bis specifically prohibits other uses of LF.

The mail clients discussed above are incorrectly ending lines with LF and, in most cases, ending the entire message with LF dot LF. That's not CR LF dot CR LF, so a server such as msn.com will sit there waiting for the rest of the message. After a while it'll give up and drop the connection. Your mail doesn't get through.

Some mail servers convert a bare LF into CR LF, and accept LF dot LF as the end of a mail message. This behavior is specifically prohibited by 821bis.
...


А это значит, что писать надо так:
Код: plaintext
1.
2.
3.
4.
...
string vBody =  "\r\nВот оно сообщение!!!\r\n" ;
NewEmail.Send( "inbox@inbox.ru" ,  "mail@mail.ru" ,  "Сообщение!" , vBody);
...


Всем спасибо!
_____
kxmep
...
Рейтинг: 0 / 0
CDO
    #32386012
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже второй раз вижу эту ошибку в форуме и второй раз не обращаю на неё внимания :(

сам пишу обычно так: @"c:\example\"

может быть поэтому?
...
Рейтинг: 0 / 0
CDO
    #32386154
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по моему ты что-то напутал, h?
\r\n , \n и @"c:\temp" разные вещи.
...
Рейтинг: 0 / 0
CDO
    #32386253
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпо моему ты что-то напутал, h?

ага - по диагонали посмотрел :)

имел ввиду ошибку с двойными слэшами string s = "c:\directory\"

(надо или @"c:\directory\" или "c:\\directory\\")
...
Рейтинг: 0 / 0
CDO
    #32386884
kxmep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В продолжение...

Выяснилось, что письма с аттачем отправлялись потому, что и файл и тело письма кодировалось Base64. Т.е. символ "\n" был перекодирован и теле письма не встречался.

Остается не понятным, почему же на моем серваке все работет даже если в теле письма есть символ "\n" без предшествующего символа "\r"?

kxmep
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / CDO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]