![]() |
Email via Smpt
Hallo,
Ich möchte eine Email via Smtp versenden. Dazu habe ich Smpt erstmal installiert (wie ![]() Gefunden habe ich zum versenden den folgenden Code:
Delphi-Quellcode:
Ich habe makiert wo die Fehler sind.
uses
...IdAntiFreeze, IdMessage,IdAttachmentFile, IdText,IdSmtp; procedure TForm1.Button1Click(Sender: TObject); var Email: TIdMessage; s: integer; begin s := 0; Email := TIdMessage.Create(nil); Email.Recipients.Clear; Email.Recipients.Add.Address := 'mail@hotmail.de'; //email des empfängers Email.BccList.Add.Address := 'mail@hotmail.de'; //email des empfängers Email.from.Text := edit1.text; //Text der Email Email.From.Name := 'mail@hotmail.de'; //Name dem die Email gehört, also mein Name Email.From.Address:='mail@hotmail.de'; //Absender Email.Subject:='Test'; //Betreff Email.Date := Now; with TIdText.Create(email.MessageParts, nil) do begin Body.Text := RichEdit1.Text; CharSet := 'iso-8859-1'; ContentTransfer := 'quoted-printable'; ContentType := 'text/plain'; ParentPart := -1; end; with TIdText.Create(email.MessageParts, nil) do begin Body.Text := RichEdit1.asansistring('html'); //[Fehler] Unit1.pas(52): E2003 Undefinierter Bezeichner: 'asansistring' CharSet := 'iso-8859-1'; ContentTransfer := 'quoted-printable'; ContentType := 'text/html'; ParentPart := -1; end; idsmtp.Connect; //[Fehler] Unit1.pas(59): E2003 Undefinierter Bezeichner: 'Connect' try idsmtp.Send(Email); //[Fehler] Unit1.pas(61): E2003 Undefinierter Bezeichner: 'Send' idsmtp.Disconnect; //[Fehler] Unit1.pas(62): E2003 Undefinierter Bezeichner: 'Disconnect' except idsmtp.Disconnect; //[Fehler] Unit1.pas(64): E2003 Undefinierter Bezeichner: 'Disconnect' end; showmessage('Mail wurde verschickt'); end; Kann mir jemand helfen? Mfg |
Re: Email via Smpt
Hallo,
wenn der Compiler dir sagt, dass ein bestimmtes Objekt die angegebene Methode nicht habe, dann kannst du ihm ruhig glauben. TRichEdit hat in meiner Version keine Methode AsAnsiString() und deine SMTP-Komponente (idSmtp1 ?) sollte nicht idSmtp heißen - so heißt doch die eingebeunden Unit. Benenne die Komponente um oder verwende self.idsmtp um die Namensüberdeckung zu umgehen. Grüße vom marabu |
Re: Email via Smpt
Huhu,
soll ich dan anstatt
Delphi-Quellcode:
einfach
asansistring('html')
Delphi-Quellcode:
nehmen?
Body.Text:=RichEdit1.Text;
Und meine Unit heißt Unit1, von daher kann es dort zu keiner Namensüberlagerung kommen. bei self.idsmpt.connect bekomme ich die Meldung: "Undefinierter Bezeichner 'idsmtp'" Mfg |
Re: Email via Smpt
Wie du deinen Text aus dem RichEdit übernimmst, bleibt dir überlassen - als markup wirst du ihn ohne RTF2HTML-Übersetzer wohl nicht erhalten.
Wenn deine Unit Unit1 heißt, dann heißt deine SMTP-Client-Komponente wahrscheinlich IdSmtp1. Ich bezog mich auf die Unit IdSmtp, welche automatisch unter USES aufgeführt wird, sobald du eine SMTP-Komponente auf deine Form ziehst. |
Re: Email via Smpt
Und wie kann ich den Text dann übersetzten?
Ich kenne mich mit Smtp nicht wirklich gut aus, daher weis ich auch nciht ob es einen unterschied macht ob ich den Text aus einem RichEdit oder aus einen Memofeld zb. beziehe (wäre mir eigentlich egal wo raus - soalnge es funktioniert). Unter Unit steht IdSmpt, dass stimmt. Nenne ich jedoch beim ButtonClick IdSmpt zu IdSmpt1 bekomme ich die meldung: Undefinierter Bezeichner 'IdSmtp1'. Muss ich IdSmpt vorher noch deklarieren? Und wenn ja, wie? Mfg |
Re: Email via Smpt
Zitat:
Deine TypDeklaration sollte dann auch idsmtp1 beinhalten.
Delphi-Quellcode:
Den Namen änderst Du am besten im ObjectInspector.
type
TForm1 = class(TForm) IdSMTP1: TIdSMTP; private { Private declarations } public { Public declarations } end; Grüße Klaus |
Re: Email via Smpt
Ah ok Danke!
Nun geht zumindest dort alles. Will ich das Projekt Starten kommt: Feld Form1.IdSmtp1 besitzt keine entsprechende komponente. Soll sie entfern werden? Klicke ich auf nein, startet das Programm. Klicke ich auf den Button stürzt das Programm ab und ich bekomme ein Fehler bei IdSmtp1.Connect (bzw beim ersten IdSmtp1 im Quellcode) Woran kann dies liegen? Mfg |
Re: Email via Smpt
Das die Komponente in deinem Programm fehlt.
|
Re: Email via Smpt
Und wie bekomme ich sie dort hinein? :gruebel:
|
Re: Email via Smpt
Leg sie auf die Form.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz