AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi EIdProtocolReplyError bei EMailversandt mit Indy
Thema durchsuchen
Ansicht
Themen-Optionen

EIdProtocolReplyError bei EMailversandt mit Indy

Ein Thema von kluckweb · begonnen am 30. Mai 2008 · letzter Beitrag vom 30. Mai 2008
Antwort Antwort
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#1

EIdProtocolReplyError bei EMailversandt mit Indy

  Alt 30. Mai 2008, 07:52
Hallo zusammen,

ich hoffe, dass Ihr mir helfen könnt. Mit dem nachfolgenden Code habe ich bisher den Inhalt einer externen Datei geladen, zwei Variablen durch Datenbankwerte ersetzt und diesen neuen Text dann per E-Mail versandt. Das hat auch immer problemlos funktioniert und funktioniert immer noch, wenn ich die E-Mail Zugangsdaten nehme, die ich bisher verwendet habe. Nun haben wir den Server gewechselt und es funktioniert auch soweit alles, bis auf diese Funktion. Wenn ich die neuen E-Mail Zugangsdaten verwende kriege ich entweder folgende Fehlermeldung: "Im Projekt ist eine Exception der Klasse EIdProtocolReplyError aufgetreten. Meldung: See http://pobox.com/~djb/docs/smtplf.html" oder die Fehlermeldung "Die Verbindung wurde erfolgreich geschlossen".


Delphi-Quellcode:
var n : integer;
    text : string;
begin
   // Senden per E-Mail

   IdMessage.Clear;

  // Plain Text
  with TIdText.Create(IdMessage.MessageParts, nil) do
  begin
    ContentType := 'text/plain';
    Body.LoadFromFile('body.txt');
    text := body.Text;
    n := pos('$user',text);
    delete(text,n,5);
    insert(DBAdvEdit12.Text,text,n);
    body.Text := text;

    n := pos('$pw',text);
    delete(text,n,3);
    insert(DBAdvEdit11.Text,text,n);
    body.Text := text;
  end;

  // HTML Part
  with TIdText.Create(IdMessage.MessageParts, nil) do
  begin
    ContentType := 'text/html';
    Body.LoadFromFile('body.php');
    text := body.Text;

    n := pos('$user',text);
    delete(text,n,5);
    insert(DBAdvEdit12.Text,text,n);
    body.Text := text;

    n := pos('$pw',text);
    delete(text,n,3);
    insert(DBAdvEdit11.Text,text,n);
    body.Text := text;
  end;

// TIdAttachment.Create(IdMessage.MessageParts, Filename);


  IdMessage.ContentType := 'text/html';
  IdMessage.From.Address := 'info@meinedomain.de';
  IdMessage.From.Name := 'mein name';
  IdMessage.Recipients.Add.Address := kundendaten.FieldByName('email_haupt').asString;
  IdMessage.Subject := 'betreff';

  IdSMTP.Connect;
  try
    IdSMTP.Send(IdMessage);
  finally
    IdSMTP.Disconnect;
  end;
   // Senden per E-Mail Ende
   showMessage('Die Daten wurden erfolgreich versandt');
end;
Habt Ihr eine Ideee, woran das liegen könnte?

Ich bin mittlerweile soweit, dass es daran zu liegen scheint, dass zwei Dateien geladen werden und dort Daten ersetzt werden. Nehme ich z.B. das Laden und Ersetzen der PHP Datei oder alternativ des Textes heraus, versendet er eine leere E-Mail. Kopiere ich alles nochmal in den Body versendet er eine HTML E-Mail ohne Formatierung.

Ich wäre sehr dankbar, wenn Ihr mir vielleicht mit dem einen oder anderen Tip helfen könntet, was man hier machen kann, damit man eine E-Mail mit HTML Formatierung weiterhin versenden kann.

Vielen Dank im Voraus.

[edit=SirThornberry]Titel geändert - Das es sich um ein Problem handelt sagt bereits die gewählte Sparte aus - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#2

Re: Problem eine E-Mail abzusenden

  Alt 30. Mai 2008, 08:40
Ist jetzt erstmal nur Optik, aber sollte:

Delphi-Quellcode:
// Ersetzen der Platzhalter, durch einfaches StringReplace
body.Text:= StringReplace(StringReplace(body.Text, '$user', DBAdvEdit12.Text), '$pw', DBAdvEdit11.Text);

nicht das gleiche machen wie:

Delphi-Quellcode:
text := body.Text;
n := pos('$user',text);
delete(text,n,5);
insert(DBAdvEdit12.Text,text,n);
body.Text := text;

n := pos('$pw',text);
delete(text,n,3);
insert(DBAdvEdit11.Text,text,n);
body.Text := text;
Gruß,
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#3

Re: Problem eine E-Mail abzusenden

  Alt 30. Mai 2008, 08:50
Zitat von kluckweb:
Wenn ich die neuen E-Mail Zugangsdaten verwende kriege ich entweder folgende Fehlermeldung: "Im Projekt ist eine Exception der Klasse EIdProtocolReplyError aufgetreten. Meldung: See http://pobox.com/~djb/docs/smtplf.html" oder die Fehlermeldung "Die Verbindung wurde erfolgreich geschlossen".
Bist Du dem Link in der Fehlermeldung gefolgt und konntest das dort geschilderte Problem (Linefeeds ohne Carriage return) ausschließen?

Sherlock
Oliver
  Mit Zitat antworten Zitat
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#4

Re: Problem eine E-Mail abzusenden

  Alt 30. Mai 2008, 09:20
Ich nehme mal an, dass irgendwo anscheinend doch noch ein CHR drin war.
Nachdem ich das StringReplace nun mal getestet habe, geht es alles.

Super!! Vielen Dank.
  Mit Zitat antworten Zitat
30. Mai 2008, 09:20
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Internet / LAN / ASP.NET" verschoben.
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#6

Re: EIdProtocolReplyError bei EMailversandt mit Indy

  Alt 30. Mai 2008, 09:57
Ich muss nochmal kurz etwas nachfragen, weil ich nun total verwirrt bin.

Ich habe dieselben Zeilen an einer anderen Stelle.

Delphi-Quellcode:
  // Plain Text
    IDMessage.ContentType := 'text/plain';
    IDMessage.Body.LoadFromFile('emailangebot.txt');

  // HTML Part
    IDMessage.ContentType := 'text/html';
    IDMessage.Body.LoadFromFile('emailangebot.html');

  TIdAttachment.Create(IdMessage.MessageParts, Filename);


  IdMessage.ContentType := 'text/html';
  IdMessage.From.Address := 'info@meinedomain.de';
  IdMessage.From.Name := 'mein name';
  IdMessage.Subject := 'Ihr Angebot von mein name';
  IdMessage.Recipients.Add.Address := Kundendaten.FieldByName('email_haupt').asString;
  IdMessage.BccList.Add.Address := 'info@meinedomain.de';

  IdSMTP.Connect;
  try
    IdSMTP.Send(IdMessage);
  finally
    IdSMTP.Disconnect;
  end;
Nun kommt die so zusammengestellte Mail aber ständig so an, dass im Body in Outlook der HTML Quellcode angezeigt wird.

Beispiel:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>


<style Type="text/css">
<!--


Habt Ihr vielleicht auch eine Idee, wie das nun wieder sein kann?

Danke
  Mit Zitat antworten Zitat
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#7

Re: EIdProtocolReplyError bei EMailversandt mit Indy

  Alt 30. Mai 2008, 10:19
Noch ein Nachtrag:

Wenn ich das Laden des HTML Formulars raus nehme, erscheint der Text ordentlich.

Mit welchem Befehl kann denn der Body als HTML formatiert werden mit der Vorlage?
  Mit Zitat antworten Zitat
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#8

Re: EIdProtocolReplyError bei EMailversandt mit Indy

  Alt 30. Mai 2008, 10:48
Es scheint an der Zeile bzgl. des Attachments zu liegen. Wenn ich die rausnehme wird der Body ordentlich erstellt.

Gibt es noch eine andere Möglichkeit eine Datei anzuhängen?

Wäre sehr dankbar für einen Tip.

Danke.
  Mit Zitat antworten Zitat
kluckweb

Registriert seit: 8. Okt 2005
149 Beiträge
 
#9

Re: EIdProtocolReplyError bei EMailversandt mit Indy

  Alt 30. Mai 2008, 11:35
Das Problem scheint doch irgendwo anders zu liegen. Es scheint an diesen Zeilen zu liegen, dass die Fehlermeldung "Verbindung wurde geschlossen" kommt.

Delphi-Quellcode:
  // Plain Text
  with TIdText.Create(IdMessage.MessageParts, nil) do
  begin
    ContentType := 'text/plain';
    Body.LoadFromFile('emailangebot.txt');
  end;

  // HTML Part
  with TIdText.Create(IdMessage.MessageParts, nil) do
  begin
    ContentType := 'text/html';
    Body.LoadFromFile('emailangebot.html');
  end;
Nimm man diesen Quellcode:

Delphi-Quellcode:
  // Plain Text
    IdMessage.ContentType := 'text/plain';
    IdMessage.Body.LoadFromFile('emailangebot.txt');

  // HTML Part
    IdMessage.ContentType := 'text/html';
    IdMessage.Body.LoadFromFile('emailangebot.html');
versendet er und es kommt auch keine Fehlermeldung. Allerdings kann man dann kein Attachment anhängen. Siehe KOmmnentar zuvor.

Ich wäre echt dankbar, wenn Ihr noch eine Idee hättet.

Danke.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz