![]() |
Socket Error # 10022
Hallo!
Ich bin gerade dabei ein kleines Email Versende Prog zu schreiben. Dazu benutze ich die Indys und als ich nun mein Programm compilieren wollt bekam ich folgende Meldung zurück... --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Register.exe ist eine Exception der Klasse EIdSocketError aufgetreten. Meldung: 'Socket Error # 10022 Invalid argument.'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- Ich hab dann auf Ok geklickt und mit einzelnem schritt vorwärts weitergemacht...und bekam dann folgende Meldung: --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Register.exe ist eine Exception der Klasse EIdCouldNotBindSocket aufgetreten. Meldung: 'Could not bind socket. Address and port are already in use.'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- Welche bei erneutem Fortsetzen ... mit der Meldung: --------------------------- Register --------------------------- Could not bind socket. Address and port are already in use. --------------------------- OK --------------------------- "belohnt" wurde... Woran liegt das?? Sowohl meine E-Mailadresse als auch der Port ist richtig... |
Re: Socket Error # 10022
Das ließt sich erstmal so als ob du versuchen würdest, einen Indy-Server zu aktivieren.
Beim Client Host und Port gesetzt? Mehr fällt mir so auch nicht ein.. Ein bisschen Code wäre vielleicht auch nicht schlecht. |
Re: Socket Error # 10022
also hier ist der code für das senden...
Delphi-Quellcode:
Also wie dem einen oder anderen vllt. schon aufgeffallen ist, ist es bei diesem Code nicht möglich den Absender oder Empfänger zu ändern (es seiden mann besitzt den quellcode... aber naja...
unit SendUnit;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, XPMan, ComCtrls, StdCtrls, IdMessage, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent, IdServerIOHandler, IdAntiFreezeBase, IdAntiFreeze, Menus, IdIPWatch, IdVCard, IdUserPassProvider; type TSend = class(TForm) Send: TButton; msg: TMemo; ListBox1: TListBox; IdSMTP1: TIdSMTP; IdMessage1: TIdMessage; IdAntiFreeze1: TIdAntiFreeze; procedure SendClick(Sender: TObject); procedure BackClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure CancelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure smtpSendMailStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); private { Private-Deklarationen } public { Public-Deklarationen } procedure Status(AMsg: string); end; var Send: TSend; implementation uses commctrl, OtherOptionsUnit, RegisterUnit; {$R *.dfm} procedure TSend.FormShow(Sender: TObject); var r: TRect; begin Msg.text := 'Hallo:' + #13#10 + Hallo.text; end; procedure TSend.SendClick(Sender: TObject); var s : string; begin Send.Enabled := False; try with idmessage1 do begin Clear; From.Text := Trim('Bsp@bsp.de'); {Absender} Recipients.Add.Text := Trim('Hallo@Tschüß.de'); {Empfänger} Subject := Trim('Ich habe leider keinen Betreff'); {Betreff} Body.Assign(msg.Lines); {Hier kommt die Nachricht hinein} end; with IDSmtp1 do begin Username := Trim('Bsp'); Password := Trim('BspPasswort'); Host := Trim('BspHost'); Port := 25; Connect; try Send(idmessage1); finally Disconnect; end; end; Status('Completed'); finally Send.Enabled := True; end; s := 'Die Nachricht wurde an den EMpfänger versendet!'; ShowMessage(s); close; Application.terminate; end; procedure TSend.smtpSendMailStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); begin Status(AStatusText); end; procedure TSend.Status(AMsg: string); begin ListBox1.ItemIndex := ListBox1.Items.Add(AMsg); Application.ProcessMessages; Application.ProcessMessages; Application.ProcessMessages; end; end. Das sind die wichtigsten codezeilen (ganauer gesagt sind das die seit denen ich das Projekt nicht mehr Fhlerfrei ausführen kann...) Eine allgemeine Info ist noch: Das Prog hat insgesamt 4 Formulare... wovon eins hier ja zu sehen ist und das andere nur ein paar edits enthält, deren inhalt die nachricht ist... |
Re: Socket Error # 10022
Hi!
Also, diese TIdSMTP und TIdMessage habe ich noch nie benutzt. Weiß also nicht, was da für Dinge passieren können :? Um das Connect würde ich noch ein try...except drumbauen. Der Host auch? (Frage die dumme Frage, weil du oben nur geschrieben hast der Port passt).. Sorry, so richtig kann ich dir nicht helfen.. Vielleicht teste ich das ganze aber selbst später mal und melde mich dann nochmal.. Edit: Also, ich habe deinen Code mal getestet. Bei mir sieht das jetzt so aus:
Delphi-Quellcode:
Das Funktioniert hier einfach nur. Den Benutzernamen und das Passwort habe ich rausgemacht, im IdSMTP1 AutoType auf atNone gesetzt. Ich muss halt vorher mein Konto abfragen, dann ist es für x Minuten zum Mail senden freigeschaltet. Liegt da eventuell bei dir der Fehler? Das try...except könnte dir auch weiterhelfen. So, das wars von mir :)
with idmessage1 do
begin Clear; From.Text := Trim('meine@email.de'); {Absender} Recipients.Add.Text := Trim('meine@email.de'); {Empfänger} Subject := Trim('Ich habe leider keinen Betreff'); {Betreff} Body.Assign(msg.Lines); {Hier kommt die Nachricht hinein} end; with IDSmtp1 do begin Host := Trim('smtp.email.de'); Port := 25; try Connect; Send(idmessage1); except on e: Exception do begin ShowMessage(e.Message + e.ClassName); end; end; end; |
Re: Socket Error # 10022
Also Port ist in der Regel ja immer 25 und deshalb hab ich den weg gelassen... un die restlichen Infos wären... bei eneme Web.de emailkonto nur der server (smtp.web.de) und der rest ist ja klar....usrename, passwort, emailadressen....
Aber zurück zu mienem problem ... vielleicht können das ja ein paar mal testen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 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