J'ai une fonction qui envoie des emails en utilisant le framework de messagerie intégré asp.net. Je l'ai inclus ci-dessous.SmtpClient ne ferme pas la session après l'envoi du message
public void SendMessage()
{
var message = new MailMessage();
var client = new SmtpClient();
// Get the Message Envelope Details
this.LoadMessageDetailsFromFile();
// Process rules (if any): Rules engine not implemented yet!
this.SetConfiguration(message);
// Formats the message body template using XSLT
this.FormatMessageBody(message);
// Adds the attachments
this.AddAttachments(message);
// Send the mail
client.Timeout = 999999999;
client.Send(message);
//Clean up attachments
foreach (var attachment in message.Attachments)
{
attachment.Dispose();
}
}
Maintenant, à aucun moment est la taille du message total supérieur à 10 Mo, mais l'échange est produit une erreur en disant que 20Mo est la taille maximale pour chaque session. Est-ce que .net envoie des messages en lot à SMTP? Pourquoi produirait-il cette erreur, même si chaque fois que j'envoie un email, je crée un nouvel objet SMtpClient?
Échange exacte Erreur: la taille de la session dépasse la taille maximale de session fixe
Il semble que la connexion est réutilisée en soulignant, même si vous créez de nouvelles instances de smtpclient.
Quelqu'un sait contourner ce problème, ce qui suit ne fonctionne pas:
Smtp client = new SmtpClient("hostname");
client.ServicePoint.MaxIdleTime = 0;
client.ServicePoint.ConnectionLimit = 1;
Merci à l'avance
L'hôte du paramètre de serveur SMTP est le serveur Exchange lui-même? –
Oui, c'est correct. –
Je vous suggère de regarder dans le journal Exchange (si possible) pour vérifier si la boucle est réellement considérée comme une session du point de vue de l'échange. –