Zitat von
nahpets:
Delphi-Quellcode:
idMessage.From.Text := 'Test';
idMessage.Sender.Text := 'Test';
sollte offensichtlich sein. Müssen
gültige Mailadressen sein. Wo soll denn bitte eine Mail an den Empfänger 'Test' hingehen? Und wie soll der Empfänger den Absender 'Test' erkennen?
smtp.mail.yahoo.de hat Port 25 offen.
Und bitte verrate uns doch noch die Fehlermeldung.
Der Inhalt von Username, PW und Empfaengermail könnte von Bedeutung sein (muss aber nicht zwingend) jenachdem, wie offen der Mailserver von Yahoo ist. Lässt der z. B. einen Mailversand ohne vorhergehende Anmeldung zu?
Schau bitte mal unter
http://de.wikipedia.org/wiki/Simple_...nsfer_Protocol, dort bei "Das Protokoll" findest Du eine Tabelle mit Befehlen. Diese kannst Du über
Code:
Telnet
smtp.mail.yahoo.de 25
ausprobieren. Wenn Du damit mit Deinen Daten eine Mail versenden kannst, dann gehts mit den gleichen Werten auch über
Indy.
Hallo und schonmal Danke an nahpets hab jetzt mit einigen Hinweisen erfolgreich eine EMail versendet. Ich schreibe hier mal, da es für mich aus den bisherigen Threats, die ich gefunden hab nicht wirklich ersichtlich war, auf was wo eingetragen ist. Allerdings werde ich einige Daten nur beispielhaft angeben, da es sich dabei um Logindaten und EMail-Adressen von mir handelt.
Zur Fehlermeldung wurde ein Socket-Fehler 10054 angegeben, welcher allerdings auch noch auf dem falschen Port (465) ausgelöst wurde. Diesen Port habe ich auf der Yahoo-Seite für einen
SMTP-Emailversand gefunden.
Ok hier für alle die nochmal hier nach einem EMail-versand aus einem Programm heraus suchen, die Einstellungen, die ich verwendet hab.
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdMessage, IdSMTPBase, IdSMTP;
procedure TForm1.FormCreate(Sender: TObject);
var
SMTP : TIdSMTP;
idMessage : TIdMessage;
TestStringList: TStringList;
begin
TestStringList := TStringList.Create;
TestStringList.Add('
Test');
// Es wird im Textfeld der EMail das Wort "Test" angegeben.
//Create TIdSMTP and TIdMessage Componente
SMTP := TIdSMTP.Create();
idMessage := TIdMessage.Create();
//Configure SMPTP
SMTP.Host := '
smtp.mail.yahoo.de';
SMTP.Username := Username;
SMTP.Password := Pw;
SMTP.Port := 25;
// Wenn Ihr bei eurem Yahoo-Account nachseht, werden dort unter den Einstellungen für SMTP-EMailversand der Port 465 angegeben. wenn Ihr diesen verwendet erhaltet Ihr einen Socket-Error 10054. Dieser Port ist wie Assertor sagt für die Verwendung von SSL gültig.
//Configure idMessage
idMessage.From.Text := SenderMail;
idMessage.Sender.Text := EmpfaengerMail;
idMessage.Recipients.EMailAddresses := EmpfaengerMail;
idMessage.Subject := '
Test';
idMessage.Body.Clear;
idMessage.Body := TestStringList;
// Schreibt "Text" in das Textfeld der EMail
//Send E-Mail
Try
SMTP.Connect;
SMTP.Send(idMessage);
SMTP.Disconnect;
Except
If SMTP.Connected = True
Then
Begin
Try
SMTP.Disconnect;
Except
MessageDlg('
Could not disconnect from the E-Mail Server: ' + '
smtp.mail.yahoo.de', mtError, [mbOK], 0);
End;
End;
MessageDlg('
Could not send E-Mail to: ' + Empfaengermail, mtError, [mbOk], 0);
End;
//Destroy TIdSMTP and TIdMessage Componente
SMTP.Free;
idMessage.Free;
end;
Ok der Inhalt der Konstanden kann ich hier aus persönlichen Gründen wie gesagt nicht preisgeben, sind ja schließlich meine persönlichen Daten. Allerdings für SenderMail einfach bei yahoo anmelden, dann bekommt ihr Yahoo-Account mit EMail-Adresse (z.B.
Schulze.Maier@yahoo.de = SenderMail und Username = Schulze.Maier) und die Empfangsemail ist beliebig, bei mir war das eine ...@live.de. Hoffe das hilft mal jemanden, der wie ich als Anfänger ein paar Probleme mit dem Einarbeiten hat.
@Assertor und nahpets beide ein Dankeschön waren wirklich sehr hilfreiche Erklärungen für mich. Allerdings eins hab ich noch nicht ganz verstanden @Assertor, wie meinst du das mit dem Try/Finally. Könntest du eventuell den hier geposteten Quellcode umstellen, wie es besser wäre?
Edit1 uses-Klausel hinzugefügt
2. Account Sero