Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I send SMTP email through Office365 shared mailbox?

We are thinking about moving to O365; however, we developed software that uses our current Exchange server to send email both to external users as well as to a support box when errors occur.

I've been testing this to ensure that the code we have in place will continue to work with O365 but so far, I have not been very successful.

I have tried using .Net's SmtpClient as well as MailKit's SmtpClient and neither one seems to work. I keep getting error (this is the error from MailKit -- the .Net error is similar)

"AuthenticationInvalidCredentials: 5.7.3 Authentication unsuccessful [*.prod.exchangelabs.com]"

I can use the credentials that I have in my code to log into OWA -- so I know the credentials are valid. Is it not possible to send email via O356? Is there any special configuration that has to happen in Exchange to make this possible?

Here is what I've tried so far:

MailKit

var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","[email protected]"));
msg.To.Add(new MailboxAddress("Me","[email protected]"));
msg.To.Add(new MailboxAddress("External User","[email protected]"));
msg.Subject = "Test";
msg.Body = new TextPart("plain"){
   Text = "Here is a message for you"
};
using(var client = new SmtpClient()){
    client.ServerCertificateValidationCallback = (s,c,h,e) => true;
    client.AuthenticationMechanisms.Remove("XOAUTH2"); //Not sure what this does.  Have tried with and without
    client.Connect("smtp.office365.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
    client.Authenticate(new NetworkCredential("[email protected]", "supportPwd"));
    client.Send(msg);
    client.Disconnect(true);
}

The .Net SmtpClient code looked very similar to the MailKit code.

  1. Is there a way to send through O365 with a licensed user? (code above)
  2. Are there any special settings required in Exchange or on the licensed user to make this work? (If the answer to 1 is yes)
  3. Is it possible to send email through a shared mailbox for which the credentialed user has Send As rights?

Update

I'm still getting the same error message. We do have MFA enabled for our domain users. However, we have a policy that does not require MFA for users when they are signing in from a trusted location (our org's IP). I also listed our IP as a Trusted IP. In my mind, MFA shouldn't be the issue here.

I know the credentials are correct. I copied them from the code and pasted them in to the login screen when signing into M365 -- and I got in just fine.

What am I doing wrong?

like image 286
RHarris Avatar asked Jan 14 '20 14:01

RHarris


People also ask

Can a shared mailbox send SMTP?

Custom SMTP connections are typically configured using a user's credential for on-prem Exchange shared mailboxes. Once configured successfully, emails sent from that shared mailbox will be delivered through your Exchange servers, but not stored or visible in the sent folder.

How do I enable SMTP for shared mailbox?

Individual mailboxes in the Microsoft 365 admin center: Go to Users > Active users > select the user > click Mail > click Manage email apps and verify the value of Authenticated SMTP (checked = enabled, unchecked = disabled).

Can a shared mailbox be used for SMTP relay?

For SMTP relay, we can use an unlicensed account such as shared mailbox.

Can 365 shared mailbox send email?

Users with permissions to the group mailbox can send as or send on behalf of the mailbox email address if the administrator has given that user permissions to do that. This is particularly useful for help and support mailboxes because users can send emails from "Contoso Support" or "Building A Reception Desk."


1 Answers

  1. Yes, you can.

  2. Usersettings: Screenshot of Admin Center Screenshot of Manage email apps

Server-settings : https://support.office.com/en-us/article/POP-IMAP-and-SMTP-settings-for-Outlook-com-d088b986-291d-42b8-9564-9c414e2aa040

SMTP server name smtp.office365.com

SMTP port 587

SMTP encryption method STARTTLS
  1. No, you cannot. You need a licenced user to send mail via SMTP.

https://answers.microsoft.com/en-us/msoffice/forum/msoffice_o365admin/set-up-smtp-relay-with-shared-mailbox/d7b98214-9564-432c-b098-525a98c529fb

A customer of ours has a newsletter system set up with TYPO3 and we had to create a new mailbox for this. However, a light one will suffice: instead of a Office 365 Business Premium we only assigned a Office 365 F1 licence.

Edit: also found this: Can Office365 shared mailbox use SMTP?

like image 170
Wolfgang Jacques Avatar answered Sep 19 '22 22:09

Wolfgang Jacques