You did not query the
Managerid in your first SOQL, hence the error.
Replace the following
User u = [select id, Email, Name from user LIMIT 10];
User u = [select id, Email, Manager__c Name from user LIMIT 10];
On the efficiency grounds, you have not fully mentioned your requirements, but you could use something like the code given below to make your stuff more readable and better:
User userwithManger = [select id, Email, Name, Manager__c from user LIMIT 10];
// You dont need to use the following soql. User with his/her manager id could be retrieved using single soql. more effcient.
// User u1 =[select id, Name, Manager__r.id from user where Id =:u.Manager__r.id];
Messaging.MassEmailMessage mail = new Messaging.MassEmailMessage();
List<String> sendTo = new List<String>();
sendTo.add(userwithManger.Id); // id of the user
sendTo.add(userwithManger.Manager__c); // id of the manager
P.S. I don't understand why are you adding
Id to the
sendTo list, I think it should have been
email but may be you have some other requirement. Secondly,
Manager is out-of-the-box standard User field.
Manager__r means you have implemented a custom field. So the above solution is as per your requirement mentioned in the question.