Jak wysłać maila z załącznikiem w INDY

hamtaro

Wstaw na formę następujące komponenty:

  • IdMessage - za zakładki "Indy Misc"
  • IdAntiFreeze - z zakładki "Indy Misc"
  • IdSMTP - z zakładki "Indy Clients"

No i kod odpowiedzialny za wysyłanie maila z załącznikiem:

IdMessage1.Body.Append('TREŚĆ MAILA');
IdMessage1.Recipients.EMailAddresses := '[email protected]';
IdMessage1.Subject := 'TEMAT';
IdMessage1.From.Name := 'NAZWA NADAWCY';
IdMessage1.From.Address := 'ADRES MAIL NADAWCY';
idSMTP1.Password := 'HASŁO DO KONTA';
idSMTP1.Username := 'NAZWA UŻYTKOWNIKA';
idSMTP1.Host := 'HOST DO POŁĄCZENIA';
TIdAttachment.Create(IdMessage1.MessageParts, 'SCIEŻKA DO PLIKU KTÓRY MA BYĆ W ZAŁĄCZNIKU');
IdSMTP1.Connect;
try
  IdSMTP1.Send(IdMessage1);
finally
  IdSMTP1.Disconnect;
end;

To wszystko.

FAQ

17 komentarzy

Wstawiłem te komponenty i aby sprawdzić czy działa skopiowałem żywcem a i tak przy wykonywaniu programu nie wysyła i jest błąd prz try :/

Ok , poprawilem . Mam nadzieje ze teraz bedzie dzialac ok .
W razie bledu - Wy rowniez mozecie modyfikowac , wiadomo GNU GPL ;)
jesli uwazacie , ze fajnie pisze to podsylajcie mi tematy , a ja postaram sie je opracowac :)

// ban - Cold

LOL...

A co do kropki - moim zdaniem nie :)

Che che .... wersja zmienila sie ooooo emotke : ). Swoja drogą czy po ematokach powinno sie stawiac kropke, skoro sa na koncu zdania ?

Jakoś tak mało elegancko. Brak nawet obsługi błędów, czy jakiejkolwiek komunikacji z użytkownikiem...

He He trzymaj :
procedure TForm1.Button1Click(Sender: TObject);
begin
IdMessage1.Body.Append('TREŚĆ MAILA');
....

takich rzeczy nie wiesz,,, hio hio ;)

a jaki jest kod jeżeli chcę aby wysłało dopiero po naciśnięciu buttona ?
z góry dzięx

gg:177394
email:[email protected]
skype:pio200

kurcze przy kompilacji pisze mi tak "iDAntiFreezeBase was compiled witch a different version of system RTLVersion "
hmm nie wiem o co chodzi z tym ...przydałaby sie pomoc...;)

Tylko niech ktoś poda linka do tych Indy bo nigdzie nie moge znaleść!

Na niektórych serwera nie da się wysłać maila bez:

IdMessage1.From.name := 'imię nazwisko';
IdMessage1.From.Address :='adres nadawcy';

idSMTP1.AuthenticationType:=atLogin; autoryzacja :)

Jak zrobic aby byla autoryzacja? Bo niekotre serwery poczty tego wymagaja?

Jak to określiłeś: zostałeś zjechany - ale wydaje mi się, że słusznie. Bo ja bym tych tekstów artami nie nazwał. Nikt Cię tu na siłę nie trzyma - nie chcesz się stosować do jakichś zasad, to nie (choć miałbyś jeszcze szanse, aby zacząć się do nich stosować). Spróbuj z tymi artami pójść do innego serwisu, ciekawe jak to przyjmą...
PS. nie jestem adminem ;)

chooooj....więcej nie pisze tutaj Artów...
niedość ze je napisałem, zostałem za to zjechany...
ale cóż, to się nazywa "sruwość-admina"... -.0
pozdro....

Matko boska! Apeluję, abyś zaczął po polsku redagować teksty.
Po prostu tekst aż się nie chce czytać!
I to nie gotowiec, ale IMHO FAQ.
Aha, stosujemy polskie znaki nie tylko w tekście, ale w tytule też. Przeniosłem do FAQ i poprawiłem nazwę (i cały tekst przy okazji ;)).

A po co mi IdAntiFreeze ?

hej nie wiem jak to zrobiles ale linijak z
TIdAttachment.Create(IdMessage1.MessageParts, 'SCIEŻKA DO PLIKU KTÓRY MA BYĆ W ZAŁĄCZNIKU');
mi wywala program - i niestety zalacznik nie idzie!