Ciao a tutti,
Sto lottando con la configurazione di SMTP sulla mia installazione di Discourse e si è rivelata una sfida non indifferente. Ho esaminato numerosi post come questo senza successo.
Ecco il succo: sospetto che i miei problemi siano legati al formato e alla lunghezza dello username e della password che sono tenuto a utilizzare. Sto utilizzando Azure Communication Service per il mio server SMTP, che richiede una configurazione specifica che coinvolge un’App Azure Entra (precedentemente Azure Active Directory).
Per arrivare al dunque, il formato dello username è simile a questo (non credenziali reali, solo un esempio):
<Nome risorsa Azure Communication Services>.<ID applicazione Entra>.<ID tenant applicazione Entra>
Ecco un esempio: my-communication-service.7d8233e0-c230-4468-a2de-1d03aa64bb71.49ba4f9c-3b18-43df-b5fd-5e203ba6e031
Per maggiori dettagli, consulta questo link.
Nel frattempo, la password deve aderire a un formato di segreto generato da Azure, come ad esempio:
b_C8Q~WjHH~MtFQptMj8wR1KroOZYigGy3A3Zc5M
Ora, ho configurato questo sistema con successo in C# con credenziali simili.
private static void SendMail()
{
string smtpAuthUsername = "my-communication-service.7d8233e0-c230-4468-a2de-1d03aa64bb71.49ba4f9c-3b18-43df-b5fd-5e203ba6e031";
string smtpAuthPassword = "a~C8Q~WjHH~MtFQptMj8wR1KroOZYigGy3A3Zc5M";
string sender = "DoNotReply@my-domain.com";
string recipient = "admin@my-domain";
string subject = "You a chosen";
string body = "One gorgeous body";
string smtpHostUrl = "smtp.azurecomm.net";
using (var client = new SmtpClient(smtpHostUrl))
{
client.Port = 587;
client.Credentials = new NetworkCredential(smtpAuthUsername, smtpAuthPassword);
client.EnableSsl = false;
var message = new MailMessage(sender, recipient, subject, body);
try
{
client.Send(message);
Console.WriteLine("The email was successfully sent using Smtp.");
}
catch (Exception ex)
{
Console.WriteLine($"Smtp failed with the exception: {ex.Message}.");
}
}
}
Tuttavia, quando provo a implementare queste impostazioni in Discourse, le cose iniziano a funzionare male. Ecco cosa ho configurato:
DISCOURSE_SMTP_ADDRESS: smtp.azurecomm.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "my-communication-service.7d8233e0-c230-4468-a2de-1d03aa64bb71.49ba4f9c-3b18-43df-b5fd-5e203ba6e031"
DISCOURSE_SMTP_PASSWORD: "b_C8Q~WjHH~MtFQptMj8wR1KroOZYigGy3A3Zc5M"
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_DOMAIN: my-domain.com
DISCOURSE_NOTIFICATION_EMAIL: DoNotReply@my-domain.com
Tuttavia, nonostante questa configurazione, continuo a ricevere un errore di autenticazione come da snippet di log:
Job exception: Net::SMTPAuthenticationError
Ho sperimentato racchiudendo lo username e la password in vari modi: virgolette singole, virgolette doppie o anche omettendoli del tutto. Ma il risultato rimane lo stesso.
Qualsiasi suggerimento o consiglio su cos’altro potrei provare sarebbe molto apprezzato.