addEditor vs. addViewer: pick the right method first
DriveApp exposes two person-targeted sharing methods: addEditor(email) and addViewer(email). addEditor puts the recipient in the Editors list, which means they can modify the file and re-share it if your domain settings allow. addViewer puts them in the Viewers list — read and download, nothing more. The call is identical either way; only the permission level differs.
Both methods send a notification email to the recipient by default. That email comes from Google's sharing infrastructure, not from your Apps Script account, so it lands in their inbox looking like a standard Drive share. If you want to suppress the email, use the array form: file.addEditors([email]) does not send a notification, which is worth knowing when you are bulk-sharing hundreds of files in a loop and do not want to flood inboxes.
The first time I hit a situation where users complained they never got an access notification, the culprit was that I had switched to the array form for batch performance and forgotten it silences the email. Keep that trade-off in mind before you optimize.