AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi html Mail mit Bilder (attachment) versenden mit Indy
Thema durchsuchen
Ansicht
Themen-Optionen

html Mail mit Bilder (attachment) versenden mit Indy

Ein Thema von CTV · begonnen am 21. Jan 2004 · letzter Beitrag vom 21. Jan 2004
Antwort Antwort
Benutzerbild von CTV
CTV

Registriert seit: 20. Jan 2004
Ort: Zug CH
83 Beiträge
 
Delphi 7 Professional
 
#1

html Mail mit Bilder (attachment) versenden mit Indy

  Alt 21. Jan 2004, 09:21
moin moin

Ich habe diese MailSend Procedure geschrieben:

Delphi-Quellcode:
procedure sendNewsLetter(an:Tstringlist; att1,Text:Tstrings;
vonMail,Betreff,Priority,CT,SMTPServer,SMTPUsername,SMTPPass:String;
SMTPPort,SmtpAuthType:integer; PopServer,PopUser,PopPass:String; PopPort:integer);

var IdMsgSend:TidMessage; SMTP:TidSmtp; POP:TidPop3; i:integer; s:string;
begin
  IdMsgSend:=TidMessage.Create(nil);
  SMTP:=TidSmtp.Create(nil);
  POP:=TidPop3.create(nil);
  with IdMsgSend do
  begin
    ContentType :=CT ;
    Body.Assign(Text);
    From.Text := vonMail;
    ReplyTo.EMailAddresses :=vonMail;
    Subject := Betreff;
    Priority := Priority ;
    s:='';
    for i:=0 to an.Count-1 do
    begin
      s:=s+BccList.EMailAddresses+an.Strings[i]+';'
    end;
    BccList.EMailAddresses:=s;
    ReceiptRecipient.Text:='';
  end;

  if att1.Count>=1 then
  begin
    for i:=0 to att1.Count-1 do
    begin
      TIdAttachment.Create(IdMsgSend.MessageParts, att1.Strings[i] );
    end;
  end;
  IdMsgSend.ContentType :=CT ;

  case SmtpAuthType of
    0: SMTP.AuthenticationType := atNone; //Normal
    1: SMTP.AuthenticationType := atLogin; //SMTPAuth
    2: begin //AfterPop
         SMTP.AuthenticationType := atNone;
         POP.Host:=POPServer;
         POP.Username:=POPUser;
         POP.Password:=POPPass;
         POP.Port:=POPPort;
         POP.Connect(5);
         POP.Disconnect;
       end;
    3: begin //afterPop+SMTPAuth
         SMTP.AuthenticationType := atLogin;
         POP.Host:=POPServer;
         POP.Username:=POPUser;
         POP.Password:=POPPass;
         POP.Port:=POPPort;
         POP.Connect(5);
         POP.Disconnect;
       end;
  end;
  SMTP.Username := SMTPUsername;
  SMTP.Password := SMTPPass;

  SMTP.Host := SMTPServer;
  SMTP.Port := SMTPPort;

  SMTP.Connect;
  try
    SMTP.Send(IdMsgSend);
  finally
    SMTP.Disconnect;
  end;
  IdMsgSend.free;
  SMTP.free;
  POP.free;
end;
Ich kann auch mails versenden ... funktoiniert soweit alles

Doch ich hab folgendes Problem:
Wenn ich mais sende mit dem ContentType := 'text/html' dann kommen die mails auch richtig an also html wird korrekt dargestellt und im Mail header steht auch by content type drin "text/html" nun wenn ich noch ein attachment mit sende wird die Eigenschaft irgendwie zurück gesezt und das mail wird nicht mehr html dargestellt (im Mail header steht nun auch wieder drin: text/plain) an was kann das liegen ? wie kann man das beheben ?

Ein weiteres Problem:
Ich möchte Auch bilder versenden können über diese Mail Procedure und zwar so wie Outlook dass man die bilder Positionieren kann. Ich hab versucht die bilder in richt text um zukonvertieren und dann die mails als richtext zuversenden.

mit dieser Funktion:
Delphi-Quellcode:
function BitmapToRTF(pict: TBitmap): string;
// by D3k
var
  bi, bb, rtf: string;
  bis, bbs: Cardinal;
  achar: ShortString;
  hexpict: string;
  I: Integer;
begin
  GetDIBSizes(pict.Handle, bis, bbs);
  SetLength(bi, bis);
  SetLength(bb, bbs);
  GetDIB(pict.Handle, pict.Palette, PChar(bi)^, PChar(bb)^);
  rtf := '{\rtf1 {\pict\dibitmap ';
  SetLength(hexpict, (Length(bb) + Length(bi)) * 2);
  I := 2;
  for bis := 1 to Length(bi) do
  begin
    achar := Format('%x', [Integer(bi[bis])]);
    if Length(achar) = 1 then
      achar := '0' + achar;
    hexpict[I - 1] := achar[1];
    hexpict[I] := achar[2];
    Inc(I, 2);
  end;
  for bbs := 1 to Length(bb) do
  begin
    achar := Format('%x', [Integer(bb[bbs])]);
    if Length(achar) = 1 then
      achar := '0' + achar;
    hexpict[I - 1] := achar[1];
    hexpict[I] := achar[2];
    Inc(I, 2);
  end;
  rtf := rtf + hexpict + ' }}';
  Result := rtf;
end;
Der Richtext den ich normal schreibe kommt an jedoch werden die Bilder (konvertierter Richtext) einfach weggelassen. Ich hab dann noch zusätzlich versucht ein Mail mit Bildern im WordPad zu erstellen und dies als rtf abzuspeichern und dann meiner Mail procedure als textinhalt mit zugeben wieder um mit content rtf dort ist das selbe die bilder werden wie Ignoriert. Weiss jemand wieso ?

Wie kann man am besten realisieren positionierte Bilder zu versenden ? geht das auch mit html ? Ich glaube outlook macht das auch mit html irgendwie muss das doch gehen hat jemand eine idee ?

Besten Dank für eure Hilfe

Greetz CTV
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: html Mail mit Bilder (attachment) versenden mit Indy

  Alt 21. Jan 2004, 09:57
Zitat von CTV:
das mail wird nicht mehr html dargestellt (im Mail header steht nun auch wieder drin: text/plain) an was kann das liegen ? wie kann man das beheben ?
Das liegt daran, daß reine 'text/html' Emails per Definition verboten sind, auch wenn einige wenige Clients eine Ausnahme machen und diese anzeigen. Du musst immer einen zusätzlichen 'text/plain' Teil mitliefern, dann geht auch der Rest

Suche mal: Hier im Forum suchenHTML EMAIL (da ist auch das zufügen von Bildern mit dabei, was auf der gleichen Idee basiert.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von CTV
CTV

Registriert seit: 20. Jan 2004
Ort: Zug CH
83 Beiträge
 
Delphi 7 Professional
 
#3

Re: html Mail mit Bilder (attachment) versenden mit Indy

  Alt 21. Jan 2004, 11:06
danke viel mals ich hab s nu hinbekommen html mails zu versenden mit attachment ) was ja vorhin ned ging ist ja eigentlich logisch dass man das unterteilen muss danke für deinen hinweis.

Was ich noch nicht rausbekommen hab ist das mit den Bildern, dass man die auf dem Richeidt anordnen kann und sie dann im Mail auch gleich ankommen. Gibt es eine gute Richedit Kompo mit welcher man ganz einfach bilder einfügen kann ? vielleicht kann man dann das ganze auch besser dem Mail über geben

Greetz Cyrus
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: html Mail mit Bilder (attachment) versenden mit Indy

  Alt 21. Jan 2004, 12:14
Hi,

die RichEdit-Komponenten in Jedi und RXLib können das.

Gruß

Frank
Frank
  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 02:26 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