Announcement

Collapse
No announcement yet.

Wie läßt man eine Anwendung per mail registrieren ?

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

  • Wie läßt man eine Anwendung per mail registrieren ?

    Hallo ich möchte, dass sich ein Anwender meines Programms bei mir per e-mail registrieren kann. Ich frage seine Daten und seine e-mail Adresse ab. Wer kann helfen? Vielen Dank.

  • #2
    Hallo,

    du solltest alle Informationen, die du brauchst, vom Anwender in einem Formular ausfüllen lassen.
    Anschließen packst du das alles in einen Text und fügst diesen entweder als Datei-Anlage oder auch als normalen (body-)Text einer E-Mail hinzu.

    Wie man mit Delphi-eigenen Komponenten eine E-Mail versendet, kannst du hier im Forum massenweise finden.

    Gruß Ul

    Comment


    • #3
      Hallo Uli,
      ich finde hier im Forum nur Tips wie man e-mails mit outlook versendet. Nun kann man aber doch nicht immer Outlook voraussetzen - oder ? Wie sendet man mit D5 Komponennten ? Vielen Dank für Deine Hilfe

      Comment


      • #4
        Moin Karl-Heinz,<br>in der Komponentenpalette findest Du auf dem FastNet Register die TNMSMTP Komponente. Damit lassen sich prima eMails verschicken. In der Hilfedatei finden sich auch Beispiele.<br>Achtung: Hier im Forum wurden die Komponenten schon so manchesmal mies gemacht. Ich weiß aber bis heute nicht warum. In meinen Anwendungen laufen sie tadellos.<br>Jens Schuman

        Comment


        • #5
          Hallo,

          Zitat aus einem anderen Thread:

          <pre>
          die Komponente zum Mailsversenden heisst "TNMSMTP" die einfachste Möglichkeit ist folgende:

          NMSMTP1.PostMessage.FromAddress := Edit1.Text; // Absenderadresse
          NMSMTP1.PostMessage.FromName := Edit2.Text; // Absendername
          NMSMTP1.PostMessage.ToAddress.Add(Edit3.Text); // Empfänger(-Liste)
          NMSMTP1.PostMessage.Subject := Edit4.Text; // Betreff
          NMSMTP1.PostMessage.Body.AddStrings(Memo1.Lines); // Mailtext
          NMSMTP1.PostMessage.Attachments.AddStrings(ListBox 1.Items); // Dateiliste
          NMSMTP1.Host := 'mail.telehaus.net'; // Mailserver (SMTP) String
          MSMTP1.Port := 25; // 25 Standard SMTP-Port
          NMSMTP1.Connect; // Verbindung zum Mailserver herstellen
          NMSMTP1.SendMail; // Mail absenden
          NMSMTP1.Disconnect; // Verbindung zum Mailserver beenden
          </pre>

          Gruß Ul

          Comment


          • #6
            Hallo Männer,
            genau das gleiche Beispiel habe ich schon probiert. Wahrscheinlich scheitere ich an meinem Provider der eine "Authentisierung" verlangt. Nun könnte ich micht erst am POP3 Server anmelden um anschloeßend meine maiö zu versenden. Das kann ich aber nicht von einem Anwender meines Programms erwarten. Ich fürchte, dass ich hier einen grundsätzlichen Denkfehler mache-oder

            Comment


            • #7
              Hi,

              SMTP ist ein Protokell, welches grundsätzlich authentifizierunglos arbeitet. Die damit mögliche missbräuchliche Nutzung hat zu dem Workarround vieler Provider geführt, dass man sich erst am POP-Server anmelden muss (sog. POP before send ), um eine gültige Authentifizierung durchzuführen. Danach wird SMTP-Port des Zielservers für eine gewisse Zeit (i.d.R. 10-15min ) 'freigeschaltet'. Du machst also keinen Denkfehler.

              Gruß
              Gesin

              Comment


              • #8
                Hallo Gesine,
                ich habe mir schon soetwas gedacht. Wie löse ich jetzt mein Problem ? ( Registrierung durch einen Anwender ). Muß ich Outlook voraussetzen ? Wie funktioniert das mit Express ? Das kann doch nicht so schwierig sein, da alle "großen" Softwarehersteller mit einer e-mail Registrierung arbeiten. Aber wie geht das

                Comment


                • #9
                  Hi Karl-Heinz,

                  Die gehen alle davon aus, dass ein korrekt eingerichteter Mail-Account auf dem Zielrechner installiert ist.

                  Dann funktioniert z.B. folgendes ( Startapplication ist lediglich eine Kapselung von Shellexecute ):

                  StartApplication('mailto:[email protected]?bcc=TES@ba cklog.de;[email protected]','>Mail an den Autor' );

                  <pre>

                  procedure StartApplication( SrcFile, sParas: String );
                  var
                  Buffer: array[0..255] of Char;
                  Options: array[0..255] of Char;
                  WorkDir, msg: String;
                  Code: Integer;
                  begin
                  if SrcFile <> '' then
                  Begin
                  for Code := 1 to Length( SrcFile ) do
                  Buffer[Code-1] := SrcFile[Code];
                  Buffer[Length( SrcFile )] := #0;
                  end;
                  if sParas <> '' then
                  Begin
                  for Code := 1 to Length( sParas ) do
                  Options[Code-1] := sParas[Code];
                  Options[Length( sParas )] := #0;
                  end;
                  WorkDir := Env.TempDir;
                  if sParas <> '' then
                  Code := ShellExecute( 0, 'open', Buffer, Options, PChar( WorkDir ), SW_SHOWNORMAL )
                  else
                  Code := ShellExecute( 0, 'open', Buffer, Nil, PChar( WorkDir ), SW_SHOWNORMAL );
                  if Code <= 32 then
                  Begin
                  Case Code of
                  0: msg := 'Zuwenig Speicherresourcen um die Anwendung zu starten.';
                  ERROR_BAD_FORMAT: msg := 'Ungültige Zielapplikation. Entweder kein Windowsprogramm oder Fehler in der EXE-Datei.';
                  SE_ERR_ACCESSDENIED: msg := 'Das Betriebssystem hat den Zugriff auf die angegebene Datei verweigert.';
                  SE_ERR_ASSOCINCOMPLETE: msg := 'Die Dateiverküpfung ist entweder unvollständig oder ungültig.';
                  SE_ERR_DDEBUSY: msg := 'Die DDE-Transaktion konnte nicht ausgeführt werden, da noch andere DDE-Transaktionen durchgeführt werden.';
                  SE_ERR_DDEFAIL: msg := 'Die DDE-Transaktion schlug fehl.';
                  SE_ERR_DDETIMEOUT: msg := 'Keine Rückmeldung der DDE-Transaktion.';
                  SE_ERR_DLLNOTFOUND: msg := 'Ungültige DLL. Eine der DLLs, die benötigt wurde um die Anwendung zu starten, war beschädigt.';
                  SE_ERR_FNF: msg := 'Datei wurde nicht gefunden';
                  SE_ERR_NOASSOC: msg := 'Die Datei ist mit keiner Anwendung verknüpft.';
                  SE_ERR_OOM: msg := 'Zuwenig Speicher um die zugehörige Anwendung zu starten.';
                  SE_ERR_PNF: msg := 'Verzeichnis wurde nicht gefunden';
                  SE_ERR_SHARE: msg := 'Fehler beim Zugriff auf gemeinsam genutzte Datei. Datei ist wahrscheinlich gesperrt.';
                  end;
                  Messagedlg( msg, mtError, [mbCancel], 0 );
                  End;
                  end;

                  </pre>

                  Du müsstest natürlich in der Kapselung des Shellexecute-Befehls, die eine oder andere Anpssung an deine Umgebung vornehmen. Auch weis ich nicht genau, ob die Übergabe des Mailtextes 100% funktioniert. Da bietet sich dann auch etwas 'spielen mit dem Aufrufparameter an. Du findest unter www.teamone.de das Kompendium Selfhtml, welches dir diesbezgl. weiterhilft.

                  Gruß
                  Gesin

                  Comment


                  • #10
                    Hallo, ersteinmal vielen Dank für Eure Mühe. Als Anfänger verstehe ich aber nicht alles was dort abläuft. Beim Aufruf der Procedure mäckert er schon inkompatible Typen an. TObjekt / String. Muß ich [email protected] durch eigene Adressen ersetzen

                    Comment


                    • #11
                      Hi,

                      Narürlich musst Du dort die gewünschten Empfänger angeben. Nach Aufruf von Startapplication sollte dein MailClient auftauchen. Als Empfänger sollte darin bereits [email protected] eingetragen sein und Blindcopies sollten ebenfalls an [email protected] gehen. Das sogar zweimal ( Also ein bischen doof gewwählt meine Blindcopy-Empfänger... ). Im Textfeld deines Mailclients solte Mail an den Autor stehen.

                      Aus der Anweisungszeile WorkDir := Env.TempDir musst du z.B. WorkDir := 'C:\Temp' machen. In den Uses Angaben deiner Unit muss ShellAPI eingefügt werden. Dann muss es funktionieren.

                      Wenn du Startapplication keinen String bzw. Stringvariable übergibst, dann bekommst du natürlich deine beschriebene Fehlermeldung ;-)

                      Gruß
                      Gesin

                      Comment


                      • #12
                        Hallo Gesine, ok, funktioniert soweit. Gibt es eine Möglichkeit des automatischen versendens, Ohne auf senden zu drücken

                        Comment


                        • #13
                          Hi Karl-Heinz,

                          Ohne Tricks geht das nicht. Ausserdem hat ein Programm <b>keinesfalls</b> irgendwelche Mails zu verschicken ohne das ich es explizit bestätige. Sonst kommt sehr schnell der Gedanke auf, man würde ausspioniert.

                          Gruß
                          Gesin

                          Comment


                          • #14
                            Hallo Gesine,
                            müssen wir anderen Software Herstellern unterstellen, nur weil Sie die Daten während der Registrierung nicht offenlegen, dass ausspionierte Daten übertragen werden ? Ich glaube grundsätzlich nicht. Es geht mir hier einfach um die Komfortabilität

                            Comment


                            • #15
                              Hi Karl-Heinz,

                              Die Frage nach der Vertrauenswürdigkeit von SW-Herstellern muss sich letztendlich jeder selbst beantworten. Mit 'vollautomatisch' verschickten Mails gab's jedoch gerade in letzter Zeit den einen oder anderen Vorfall. Damit meine ich weniger die nachgewiesene und illegale Datensammelwut des einen oder anderen Herstellers, sondern fühle mich irgendwie stark an das Stichwort Viren erinnert.

                              In diesem Zusammenhang gehört 'ein Klick mehr' nicht nur zum guten Ton und wirkt vetrauensbildend, sondern senkt die Komfortabilität ja nun wirklich nicht in Bodenlose.

                              Gruß
                              Gesin

                              Comment

                              Working...
                              X