Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Отправка почты   Найти похожие ветки 

 
MTK   (2012-07-11 12:54) [0]

Добрый день!


 
MTK   (2012-07-11 12:57) [1]

Отправляю почту с помощью такой процедуры:

procedure TfrmMain.SendSMTPMessage(Const ASMTPServer: WideString; SMTPServerPort: Integer;
                                   Const AFrom, ATo, ASubject, ATextBody: WideString;
                                   FileList: TStrings;
                                   AUserName, APassword: String;
                                   ASSL: Boolean;
                                   Const ACharSet: WideString  = "utf-8");

Var
 I: Integer;
 pMessage,
 pAttachment,
 pConfiguration,
 pFields,
 pField: OleVariant;
Begin
 pMessage:=CreateComObject(CLASS_Message) as IDispatch;

 pMessage.BodyPart.Charset:=ACharSet;
 pMessage.To:=ATo;
 pMessage.From:=AFrom;
 pMessage.Subject:=ASubject;
 pMessage.TextBody:=ATextBody;
 pMessage.AutoGenerateTextBody:=True;
 pMessage.MimeFormatted:=True;

 for I:=0 to FileList.Count - 1 do
     begin
       pAttachment:=pMessage.AddAttachment(FileList[I], "", "");
       mLog.Lines.Add("     файл к отправке: " + FileList[I]);
     end;

 pAttachment.Charset:=ACharSet;

 pConfiguration:=CreateComObject(CLASS_Configuration) as IDispatch;

 pFields:=pConfiguration.Fields;
 pField:=pFields.Item(WideString(cdoSendUsingMethod));
 pField.Value:=Integer(cdoSendUsingPort);
 pField:=pFields.Item(cdoSMTPServer);
 pField.Value:=ASMTPServer;
 pField:=pFields.Item(WideString(cdoSMTPServerPort));
 pField.Value:=SMTPServerPort;
 pField:=pFields.Item(WideString(cdoSMTPAuthenticate));

 if APassword = "" then
    pField.Value:=cdoAnonymous
 else
    pField.Value:=cdoBasic;

 pField:=pFields.Item(WideString(cdoSendUserName));
 pField.Value:=AUserName;
 pField:=pFields.Item(WideString(cdoSendPassword));
 pField.Value:=APassword;

 if APassword <> "" then
    begin
      pField:=pFields.Item(WideString(cdoSMTPUseSSL));
      pField.Value:=ASSL;

      if ASSL then
         mLog.Lines.Add("     подключение через безопасное соединение (SSL)");
    end;

 pFields.Update;
 pMessage.Configuration:=pConfiguration;

pMessage.Send;
End;


Задаю такие параметры:

ASMTPServer = smtp.mail.ru
SMTPServerPort = 25
AFrom = email
ATo = email
ASubject = subject
ATextBody = textbody
FileList = список файлов
AUserName = логин (почтовый ящик)
АPassword = пароль от ящика
ASSL = FALSE

Пробую с двумя почтовыми ящиками на маил.ру.

Если параметр авторизации = cdoAnonymous, то первый ящик отправляет письмо.
А второй выдает ошибку:
"Код ошибки транспорта: 0x800ccc65. Отклик сервера: 503 Administrative prohibition -- authorization required.  Users in your domain are not allowed to send email without authorization.  See http://help.mail.ru/mail-help/mailer/popsmtp for details"

Если параметр авторизации = cdoBasic и заполняю АPassword, то первый и второй ящик выдает ошибку.
"Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available"

Подскажите, пожалуйста, где может быть ошибка.


 
MTK   (2012-07-11 13:51) [2]

хм... список cdo констант на форум не добавляются


 
MTK   (2012-07-11 13:53) [3]

Const
 CLASS_Message: TGUID = "{CD000001-8B95-11D1-82DB-00C04FB1625D}";
 CLASS_Configuration: TGUID = "{CD000002-8B95-11D1-82DB-00C04FB1625D}";
 cdoSendUsingMethod = "schemas.microsoft.com/cdo/configuration/sendusing";
 cdoSMTPServer = "schemas.microsoft.com/cdo/configuration/smtpserver";
 cdoSMTPServerPort = "schemas.microsoft.com/cdo/configuration/smtpserverport";
 cdoSMTPAuthenticate = "schemas.microsoft.com/cdo/configuration/smtpauthenticate";
 cdoSendUsingPort = $00000002;
 cdoAnonymous = $00000000;
 cdoBasic = $00000001;
 cdoSendUserName ="schemas.microsoft.com/cdo/configuration/cdoSendUserName";
 cdoSendPassword="schemas.microsoft.com/cdo/configuration/cdoSendPassword";
 cdoSMTPUseSSL="schemas.microsoft.com/cdo/configuration/smtpusessl";


 
Dennis I. Komarov ©   (2012-07-12 22:06) [4]

И что? Сорсы компонента закрыты? Ну тогда ССЗБ... Курить RFC по SMTP в последних редакциях (версиях)...

P.S. SMTP не сложный протокол. TTcpClient :)


 
Anatoly Podgoretsky ©   (2012-07-13 07:38) [5]

> Dennis I. Komarov  (12.07.2012 22:06:04)  [4]

Зато расширения сложные, относительно


 
MTK   (2012-07-13 14:08) [6]

Скачал Synapse. За пару минут переделал. Теперь всё работает ))



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.062 c
15-1328599963
igorserg
2012-02-07 11:32
2013.03.22
XMLDocument - косяк при изменении порядка следования тегов.


15-1348077854
dm_member
2012-09-19 22:04
2013.03.22
Выделение памяти под запись с динамическим массивом


15-1344450199
ppoko
2012-08-08 22:23
2013.03.22
w8


15-1342612759
Кто б сомневался
2012-07-18 15:59
2013.03.22
Дженерики - примеры где с ними было бы лучше


15-1341739311
alexdn
2012-07-08 13:21
2013.03.22
Пример сайтов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский