Yes, you are able to create a daemon service app using the Client Credential flow to authenticate the app.
Here is a code sample to retrieve the mails using Microsoft Graph SDK with this flow:
string clientId = ""; string clientsecret = ""; string tenant = ""; string resourceURL = "https://graph.microsoft.com"; string authority = "https://login.microsoftonline.com/" + tenant + "/oauth2/token"; string userMail = "[email protected]"; var credential = new ClientCredential(clientId, clientsecret); AuthenticationContext authContext =new AuthenticationContext(authority); var authResult = await authContext.AcquireTokenAsync(resourceURL, credential); var graphserviceClient = new GraphServiceClient( new DelegateAuthenticationProvider( (requestMessage) => { requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", authResult.AccessToken); return Task.FromResult(0); })); var items = await graphserviceClient.Users[userMail].Messages.Request().OrderBy("receivedDateTime desc").GetAsync(); foreach (var item in items) { Console.WriteLine(item.Subject); }
And we need to register the app on the Azure AD portal and grant the app Mail.Read scope like figure below: 
Refer to here for more detail about calling Microsoft Graph in a service or daemon app