2 Answers
2

The "dative alternation" that exists in the Germanic languages is completely absent from French. You can't alternate between:

Il envoie un message à sa sœur

and

* Il envoie sa sœur un message

It has to be

Il envoie à sa sœur un message.

This is true, contra the previous answer, with pronouns too:

Il lui envoie un message à elle

alternates with

Il lui envoie à elle un message

and not:

* Il lui envoie elle un message

It's true that the pronoun lui doesn't take a preposition in the above examples, but that's because prepositions mark phrases, and the weak pronouns of French aren't independent words, but clitics that are parts of the verb phrase "il lui envoie".

There is however a construction in French that allows an indirect object to appear without a preposition, and that's when it's fronted as the topic of a sentence and echoed by a clitic pronoun on the verb:

(À) sa sœur, il lui envoie un message

In this case, the préposition is optional, and generally only present when establishing a contrast (i.e. you'd use à in this sentence to insist that he sent a message to his sister, but not to someone else)

If the topic is backgrounded instead and dislocated after the verb, the preposition is obligatory:

Il lui envoie un message, *(à) sa sœur

One last case where a preposition (in this case de instead of à) would be ungrammatical is with the relative pronoun dont, that is case-marked enough as it is that *de dont never appears.