Announcement

Collapse
No announcement yet.

Empfänger für SMTP Mail

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Empfänger für SMTP Mail

    Hallo,

    ich möchte in ASP.NET 3.5 Mails mit SMTP auf dem Server versenden. Diese sollen hauptsächlich im Intranet, aber teilweise an sehr viele Mitarbeiter verschickt werden (bis zu 5000).

    Daher die Fragen:
    Haben die beteiligten Klassen (MailMessage, MailAddress) oder SMTP selbst bekannte Beschränkungen was Größe oder Anzahl Empfänger angeht?
    Macht es aus Performance Sicht einen Unterschied ob die Mails To, CC oder BCC geschickt werden (ich weiss BCC ist eigentlich ein Muss, aber das ist Intranet und der Kunde ist König).

    Gruß, Bruno

  • #2
    Man könnte auch nicht eine Mail an 5000 Leute versenden, sondern 5000 Mails. Dazu könnte man einen Thread basteln, der die Adressliste und die Mail bekommt und nun in einem bestimmten Zeittakt die Mails erzeugt. Somit könnt eine Lastverteilung erfolgen.
    Christian

    Comment


    • #3
      Hallo,

      ob das Verteiler der einem Mail an die 5000 funktioniert und wie schnell hängt auch vom Provider ab. Hierzu würde sich anbieten den SMTP-Server des IIS zu verwenden (für Intranet kein Problem).

      Ob der SmtpClient von .net eine Größenbeschränkung hat weiß ich nicht. Es könnte die Gesamtzahl der Emails auch in Chunks geteilt werden (zB a 500 Stück) und diese jeweils in einem Thread verschickt werden (für das Bsp. wären das dann 10 Sendevorgänge).

      Siehe auch Serien-Email mit C# versenden


      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #4
        Hallo,

        danke für eure Antworten.
        Der SMTP Server wird der des IIS sein, auf dem auch die Webanwendung läuft.
        Daher kann ich SMTP-Server Begrenzungen und Einstellungen erfragen und möglicherweise beeinflussen.
        Eventuelle ASP.NET Begrenzungen muss ich dann eben durch Ausprobieren herausfinden und gegebenenfalls das Versenden euren Vorschlägen entsprechend aufteilen.

        Gruß, Bruno

        Comment


        • #5
          Hallo,

          weils mir noch einfällt. Wenn du das Senden auf Threads aufteilst ist es vorteilhafter die SendAsync-Methode zu verwenden da dort keine Worker-Threads aus dem ThreadPool verwendet werden, sondern die IO-Abschlussthreads. Das hat Vorteile für die Skalierung der gesamten Anwendung. Da nun aber mit SendAsync nur 1 Email gleichzeit versendet werden kann (da die SmtpClient-Klasse nicht threadsicher ist) erstell mehrere Instanze davon und lass jede für sich mit SendAsync arbeiten.

          mfG Gü
          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

          Comment


          • #6
            ich würde trotzdem Windows-Dienst zu diesem Zweck empfehlen, die E-Mails nicht mit einem Schlag sondern als einzelne versenden, inzwischen Pause 2-3 Sekunden halten.
            ASP.NEt für Massenmailings ist nicht besonders gut geeignet.
            Bitte vergessen Sie nicht die Antwort zu bewerten. Danke.:-)

            Comment

            Working...
            X