Entwickler-Ecke

Internet / Netzwerk - BCC functioniert nicht richtig


jsfrigo - Do 25.09.08 10:35
Titel: BCC functioniert nicht richtig
Hallo
Ich möchte eine Mail mittels Mapi versenden.
Leider funktioniert die hier angegebene Übergabe der BCC-Empfänger nicht.
Ich rufe das ganze wie folgt auf:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Tfemail.SendeMapiMail( Adresse , BCC, nachricht : string );
var
 s : string;
begin
  s :='Mailto: ' + Adresse ;
  if BCC <> '' then
    s := s + '?bcc=' + BCC ;
  s := s +  '?subject=' + self.eBetreff.Text + '&Body=' + Nachricht;
  if ShellExecute(Application.Handle, 'open', PChar(s), NIL,NIL, SW_SHOWNORMAL) > 32 then
  ShowMessage('Mail gesendet!');
end;


Wird eine BCC Adresse übergaben schreibt er noch ?subject in die BCC Zeile.
Übergebe ich keine BCC Adresse funktioniert alles einwandfrei.

Hat jemand eine Idee?

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


jaenicke - Do 25.09.08 10:57
Titel: Re: BCC functioniert nicht richtig
user profile iconjsfrigo hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Tfemail.SendeMapiMail( Adresse , BCC, nachricht : string );
var
 s : string;
begin
  s :='Mailto: ' + Adresse ;
  if BCC <> '' then
    s := s + '?bcc=' + BCC ;
  s := s +  '?subject=' + self.eBetreff.Text + '&Body=' + Nachricht;
  if ShellExecute(Application.Handle, 'open', PChar(s), NIL,NIL, SW_SHOWNORMAL) > 32 then
  ShowMessage('Mail gesendet!');
end;
Wenn ein BCC angegeben wurde, dann fügst du zweimal das ? hinzu, das müsste aber nach einem BCC ein & sein, denn subject ist ja nicht mehr der erste Parameter.
Vorschlag: füge das ? schon vorher hinzu, dann ggf. das BCC mit "BCC&", dann kommt danach subject usw. und es ist egal ob davor das BCC kam oder nicht.


jsfrigo - Do 25.09.08 11:54

Ja jetzt klappt es
Der funktionierende Quelltext lautet wie folgt


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Tfemail.SendeMapiMail( Adresse , BCC, nachricht : string );
var
 s : string;
begin
  s :='Mailto: ' + Adresse + '?';
  if BCC <> '' then
    s := s + 'bcc=' + BCC + '&';
  s := s +  'subject=' + self.eBetreff.Text + '&Body=' + Nachricht;
  if ShellExecute(Application.Handle, 'open', PChar(s), NIL,NIL, SW_SHOWNORMAL) > 32 then
  ShowMessage('Mail gesendet!');
end;


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt. Bitte demnächst selber machen mit [delphi]...[/delphi] - Danke. :D


Hidden - Do 25.09.08 17:49

user profile iconjsfrigo hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
if ShellExecute() > 32 then
ShowMessage('Mail gesendet!');

Dann aber auch 'ne Fehlermeldung im else ;)

mfG,