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