Hola a todos,
He estado lidiando con la configuración de SMTP en mi instalación de Discourse, y ha sido todo un desafío. He investigado numerosos posts como este sin éxito.
Aquí está el resumen: sospecho que mis problemas están relacionados con el formato y la longitud del nombre de usuario y la contraseña que se me exige usar. Estoy utilizando Azure Communication Service para mi servidor SMTP, que requiere una configuración específica que involucra una Azure Entra App (anteriormente Azure Active Directory).
Para ir al grano, el formato del nombre de usuario se ve algo así (no son credenciales reales, solo un ejemplo):
<Nombre del recurso de Azure Communication Services>.<Id de la aplicación Entra>.<Id del inquilino de la aplicación Entra>
Aquí tienes un ejemplo: my-communication-service.7d8233e0-c230-4468-a2de-1d03aa64bb71.49ba4f9c-3b18-43df-b5fd-5e203ba6e031
Para más detalles, consulta este enlace.
Mientras tanto, la contraseña debe cumplir con un formato de secreto generado por Azure, como:
b_C8Q~WjHH~MtFQptMj8wR1KroOZYigGy3A3Zc5M
Ahora, he logrado que esta configuración funcione sin problemas en C# con credenciales similares.
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}.");
}
}
}
Sin embargo, cuando intento implementar estas configuraciones en Discourse, las cosas empiezan a fallar. Aquí está lo que tengo configurado:
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
Sin embargo, a pesar de esta configuración, sigo recibiendo un error de autenticación como se indica en el fragmento de registro:
Job exception: Net::SMTPAuthenticationError
He experimentado encerrando el nombre de usuario y la contraseña de varias maneras: comillas simples, comillas dobles o incluso dejándolos fuera por completo. Pero el resultado sigue siendo el mismo.
Agradecería cualquier indicación o sugerencia sobre qué más podría intentar.