i suspect you are missing two pieces of the puzzle.
to use database mail, any non-sysadmin active directory user (or more preferably, the AD group they belong to, have to be added as users in the msdb database, and added to a specific role that exists in the msdb database: the role DatabaseMailUserRole
additionally, you need to grant the user access to the specific profile in one of two ways:
make the role public, so any user in that role has access, or grant the user permission to restricted private profile, for just that AD group.
Configure DatabaseMail>>Manage profile Security>>Private Profiles>>Click Grid with Existing Profile>>Select Available user From DropDown List and Finish
you can easily test a specific AD users permissions like this:
EXECUTE AS LOGIN = 'MyDomain\dbadotraghu'
@profile_name = 'MyProfile'
,@recipients = 'email@example.com'
,@subject = 'test'
,@Body = 'test message'
,@query= 'SELECT top 3 * from master.sys.objects';
REVERT --change back to myself
--help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!