MailItem mit mehreren Empfängern



  • Hallo,

    ich erstelle mir mittels TOutlookApplication eine Email. Die Empfänger der EMail (getrennt mit einem Semikolon) habe ich als Zeichenkette in einer ini-Datei abgelegt. Jetzt versuche ich diese als Empfänger zu setzen.
    Im ersten Schritt zerlege ich die Zeichenkette und füge die Empfänger ein.

    	String sRECIP_ONE = "";
    	char VAL;
    
    	for (int x = 1; x < sEMPFAENGER.Length()+1; x++)
    	{
    		VAL = sEMPFAENGER[x];
    		if(VAL != ';')
    		{
    			sRECIP_ONE += sEMPFAENGER[x];
    		}
    		else
    		{
    			sRECIP_ONE += ';';
    			MItem->Recipients->Add(Variant(sRECIP_ONE));
    			sRECIP_ONE = "";
    		}
    
    	}
    	// für den letzten Empfänger
    	MItem->Recipients->Add(Variant(sRECIP_ONE));
    
    MItem->Send();
    delete body;
    DataModule2->ola->Disconnect();
    
    

    Ich erhalte aber leider keine Mail oder einen Fehler. Es scheint alles ohne Probleme durchzulaufen.

    Ich habe es mal versucht die Empfänger jeweils einzeln zu setzen:

    	MItem->Recipients->Add(Variant("hans.mustermann€gmx.de"));
    	MItem->Recipients->Add(Variant("peter.mustermann€gmx.de"));
    	MItem->Subject = WideString(sSUBJECT).c_bstr();
    
     MItem->Send();
    delete body;
    DataModule2->ola->Disconnect();
    

    So bekomme ich die Mails verschickt.

    Nur leider verstehe ich absolut nicht, warum es denn mit der ersten Methode nicht funktioniert?

    Gruß
    Torsten



  • Warum hängst du noch ein Semikolon an den Empfänger (wenn du doch anhand dieses Zeichens trennst)?
    @torsten_156 sagte in MailItem mit mehreren Empfängern:

    sRECIP_ONE += ';';
    


  • Hatte erst vermutet, dass die einzelnen Empfänger doch per Semikolon in Outlook getrennt werden müssten. Ist aber nicht der Fall. Könnte somit eigentlich raus.



  • Naja In E-Mail editor von Outlook mag das sein. Und ist AFAIK nur ein Interface geschichte.
    Man hätte die Empfänger auch als Liste darstellen können (eine Zeile pro Empfänger)

    Intern ist das wohl auch nur einfach eine Liste als Datenstruktur.
    Und daher wird per "MItem->Recipients->Add" die Empfänger-Adresse zu dieser internen liste hinzugefügt

    Und so steht es auch in der Dokumentation der API.
    https://docs.microsoft.com/en-us/office/vba/api/outlook.recipients


Anmelden zum Antworten