Posso inviare e-mail SMTP tramite la cassetta postale condivisa di Office365?


13

Stiamo pensando di passare a O365; tuttavia, abbiamo sviluppato un software che utilizza il nostro attuale server Exchange per inviare e-mail sia a utenti esterni che a una casella di supporto quando si verificano errori.

Ho provato questo per assicurarsi che il codice che abbiamo in atto continuerà a funzionare con O365 ma finora non ho avuto molto successo.

Ho provato a utilizzare SmtpClient di .Net e SmtpClient di MailKit e nessuno dei due sembra funzionare. Continuo a ricevere errori (questo è l'errore di MailKit - l'errore .Net è simile)

"AuthenticationInvalidCredentials: 5.7.3 Autenticazione fallita [* .prod.exchangelabs.com]"

Posso usare le credenziali che ho nel mio codice per accedere a OWA, quindi so che le credenziali sono valide. Non è possibile inviare e-mail tramite O356? Esiste una configurazione speciale che deve avvenire in Exchange per renderlo possibile?

Ecco cosa ho provato finora:

MailKit

var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","support@mydomain.com"));
msg.To.Add(new MailboxAddress("Me","me@mydomain.com"));
msg.To.Add(new MailboxAddress("External User","euser@externaldomain.com"));
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("support@mydomain.com", "supportPwd"));
    client.Send(msg);
    client.Disconnect(true);
}

Il codice .Net SmtpClient sembrava molto simile al codice MailKit.

  1. C'è un modo per inviare tramite O365 con un utente con licenza? (codice sopra)
  2. Ci sono delle impostazioni speciali richieste in Exchange o sull'utente con licenza per farlo funzionare? (Se la risposta a 1 è sì)
  3. È possibile inviare e-mail tramite una cassetta postale condivisa per la quale l'utente con credenziali dispone dei diritti Invia come?

Aggiornare

Ricevo ancora lo stesso messaggio di errore. MFA è abilitato per i nostri utenti del dominio. Tuttavia, abbiamo una politica che non richiede MFA per gli utenti quando accedono da una posizione attendibile (IP della nostra organizzazione). Ho anche elencato il nostro IP come un IP affidabile. Nella mia mente, l'AMF non dovrebbe essere il problema qui.

So che le credenziali sono corrette. Li ho copiati dal codice e li ho incollati nella schermata di accesso quando si accede a M365 - e sono entrato bene.

Che cosa sto facendo di sbagliato?

Risposte:


7
  1. Si, puoi.

  2. Impostazioni utente: Schermata di Admin Center Schermata di Gestisci app di posta elettronica

Impostazioni server: 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, non puoi. È necessario un utente con licenza per inviare posta tramite SMTP.

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

Un nostro cliente ha un sistema di newsletter impostato con TYPO3 e per questo abbiamo dovuto creare una nuova casella di posta. Tuttavia, sarà sufficiente uno leggero: invece di un Office 365 Business Premium abbiamo assegnato solo una licenza di Office 365 F1.

Modifica: trovato anche questo: la cassetta postale condivisa di Office365 può usare SMTP?


Quindi sembra rispondere alla mia domanda relativa a una cassetta postale condivisa. Ma nel mio codice iniziale, sto lavorando con un utente con licenza e neanche quello funziona - dovrebbe?
RHarris,

@RHarris sì, dovrebbe. Vedi risposta modificata. Ci scusiamo per la prima risposta incompleta.
Wolfgang Jacques,

0

Per chiunque abbia problemi simili, ho scoperto che il mio problema era una politica di accesso condizionale. Microsoft fornisce un Baseline Policy: Block Legacy Authentication- che era stato attivato nel nostro AAD.

Osservando la Politica, è progettata per BLOCCARE qualsiasi meccanismo di autenticazione che non richiede l'AMF. Questo include cose come POP e SMTP. Una volta disabilitata questa politica, il codice sopra elencato ha funzionato bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.