Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2013, 21:28   #1
Zadovatel
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 46
По умолчанию Посоветуйте компонент для отправки email.

Всем привет.Нужен простейший компонент для отправки email.С Indy все как-то не сложилось.Вроде бы встроенная была ,но код после долгих мытарств так и не заработал.Кстати,может кто и разберется что не так:
Код:
procedure TForm1.Button7Click(Sender: TObject);
var
msg:TIdMessage;
begin
IdSMTP1.AuthenticationType:=atLogin;
IdSMTP1.Host:='smtp.gmail.com';
IdSMTP1.Port:=25;
IdSMTP1.Username:='XXX@gmail.com';
IdSMTP1.Password:='XXX';
IdSMTP1.Connect;
try
msg:=TIdMessage.Create(nil);
msg.Body.Add('test mail');
msg.Subject:='Test';
msg.From.Address:='XXX@gmail.com';
msg.From.Name:='Andrey';
msg.Recipients.EMailAddresses:='mymail@mail.ru';
msg.IsEncoded:=True;
IdSMTP1.Send(msg);
msg.Free;
ShowMessage('Вроде отправил');
IdSMTP1.Disconnect;
except
on e:Exception do
begin
msg.Free;
ShowMessage('Ни *** не дошло:(');
IdSMTP1.Disconnect;
end;
end;
end;
P.S.Генерируется исключение.
Далее попробовал FastNet,но не смог в нем разобраться,а именно куда там хотя бы пароль вводить...Одним словом нужно что-то совсем простое.
Zadovatel вне форума Ответить с цитированием
Старый 03.09.2013, 21:51   #2
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

У меня есть собственный компонент, обёртка над инди компомонентами, заточенный именно под отправку писем, рассылку, с переключением аккаунтов. Всё это в одном компоненте. Очень просто в использовании. Продаю, или меняю.
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 03.09.2013, 22:04   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Дарю:
Код:
unit UnitSMTP;

{$MODE Delphi}



interface
  uses
     IdMessage,  IdAttachmentFile,
  IdCoderHeader,
  IdBaseComponent,
  IdComponent,
  IdTCPConnection,
  IdTCPClient,
  IdExplicitTLSClientServerBase,
  IdMessageClient,
  IdSMTP,  classes, contnrs,  sysutils,
  IdSMTPBase, FileUtil;

type
TMail=class
  public      smtp:TIdSMTP; idm:TIdMessage;
   Files,Body:TStringList;
   Host_,Pass_,Sender_,Recipient_,Subject_,Error:String;
   Transliterate:Boolean;
   function Send:Boolean;
   constructor Create;
   destructor Free;
end;
implementation

{ TMail }

constructor TMail.Create;
begin
 Files:=TStringList.Create;
 Body:=TStringList.Create;
 idm:=TIdMessage.Create(nil);  smtp:=TIdSMTP.Create(nil);
 idm.ContentType:='multipart/related; type=multipart/alternative';
 idm.AttachmentEncoding:='MIME';
 idm.CharSet:='UTF-8';
 idm.Encoding:=meDefault;
 idm.IsEncoded:=true;
end;

destructor TMail.Free;
begin
 Files.Free; Body.Free;   idm.Free;  smtp.Free;
end;

function TMail.Send: Boolean;
var i,j:integer; s:string; att:TIdAttachmentFile;
begin
  with idm do begin
   with From do begin
        Address := Sender_;
   end;
   Recipients.EMailAddresses:=Recipient_; 
   Subject:=AnsiToUtf8(Subject_); 
   MessageParts.Clear;
  end;
  idm.Body.Text:=Body.Text;
  for i:=0 to Files.Count-1 do begin
   s:=Files[i];
   att:=TIdAttachmentFile.Create(idm.MessageParts,s);
   att.CharSet:='windows-1251';

  end;

  with smtp do begin
   Host:=host_; //хост или адрес почтового сервера;
   Username:=Sender_; //Имейл получателя;
   Password:=Pass_; //пароль твоего ящика;
   AuthType:=satDefault;
   Error:='';
   try
    Connect;
    if Connected then
     Send(idm)
    else Error:='No connected';
    Disconnect();
    Result:=true;
   except
     on e:Exception do begin Error:=e.Message;Result:=false;end;
   end;
   
  end;

end;

end.
Как юзать:
Код:
   with TMail.Create do begin
    Host_:='smtp.googlemail.com'                 ;
    Pass_:='пароль'                    ;
    Sender_:='Мойящик@gmail.com';
    Recipient_:='получатель@mail.ru'         ;
    Files.Append(путь к приаттачиваемому файлу);
    Subject_:='Theme of letter';

    Files.Append(fn);
    if not Send then ShowMessage(Error);
    free;
   end;
Цитата:
Генерируется исключение.
Обрати внимание как я обрабатываю ошибки, и в следующий раз показывай текст ошибки.
Может не твой код проблемы создает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2013, 22:49   #4
Zadovatel
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 46
По умолчанию

Stilet,большое спасибо.Не подскажите,как мне его теперь скомпилировать?Ругается на директиву компилятора $MODE и модуль IdAttachmentFile.dcu не находит.

Последний раз редактировалось Zadovatel; 03.09.2013 в 22:56.
Zadovatel вне форума Ответить с цитированием
Старый 03.09.2013, 22:58   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

https://github.com/googleapi/googlea.../GMailSMTP.pas
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.09.2013, 23:09   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

А зачем навесы делать?
TIdMessage - сообщение.
TIdSMTP - средство отправки IdMessage. Их разделили, чтобы не было слишком громоздко.
Человек_Борща вне форума Ответить с цитированием
Старый 03.09.2013, 23:33   #7
Zadovatel
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 46
По умолчанию

Здесь сервер не принципиален.Я так понимаю весь геморой из-за TSL/SSL?Если так,то возможно есть еще почты которые работают по старинке(без шифрования)?
Zadovatel вне форума Ответить с цитированием
Старый 03.09.2013, 23:52   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Здесь сервер не принципиален.Я так понимаю весь геморой из-за TSL/SSL?
Не помню я никакого гемороя с этим. Рассылал со своих мыл под SSL и нормально. Только проблемы с кодировками были и все.
Человек_Борща вне форума Ответить с цитированием
Старый 04.09.2013, 00:48   #9
Zadovatel
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 46
По умолчанию

Всем большое спасибо за неравнодушие.Проблема была как раз в SSL.Спасибо яндексу,настроил почту на POP3 без SSL и все заработало.
Zadovatel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте компонент для работы с удаленной бд MySQL fezilk25 Компоненты Delphi 4 17.07.2013 15:45
Посоветуйте компонент chui Компоненты Delphi 3 06.06.2012 11:21
пробема с кодом отправки email danik123 Общие вопросы C/C++ 4 22.02.2012 16:39
Посоветуйте компонент для скачивания файлов с Интернета maxefficiently Общие вопросы Delphi 3 23.02.2011 09:14
Посоветуйте литературу для начинающего. И вообще что-нибудь толковое посоветуйте ))) Гаур-Мяур SQL, базы данных 5 24.12.2009 00:37