I'm afraid I don't quite understand. Any POST to /admin/orders/{id}/fulfillments.json that fulfills line_items and any PUT to /admin/orders/{id}/fulfillments/{id}.json will generate and send an email to the customer. The only time this won't happen is if notify_customer is set to false.
If you're currently sending a POST to an order that creates a new fulfillment that doesn't contain any line_items an email won't be generated since it doesn't make sense to notify a customer about that. In that case you should be sending a PUT to the previously created fulfillment.