Freigeben über


Problembehandlung bei Datenbank-E-Mail: Senden von E-Mails von einem Remoteserver während der Problembehandlung auf dem lokalen Server

Neu: 12. Dezember 2006

In diesem Thema wird beschrieben, wie Sie einen Remoteserver zum vorübergehenden Senden von E-Mails verwenden können, die auf einem lokalen Server generiert werden. Diese Prozedur ist von Nutzen, wenn Sie für die Konfiguration von Datenbank-E-Mail auf dem lokalen Server eine Problembehandlung und Reparatur vornehmen. Dieses Thema ist nur für E-Mails relevant, die mit Datenbank-E-Mail gesendet werden. Dies betrifft keine E-Mails, die mithilfe von xp_sendmail oder Dienstprogrammen von Drittanbietern gesendet werden.

Bb326746.note(de-de,SQL.90).gifHinweis:
In diesem Thema stellt der lokale Server den Server dar, für den eine Problembehandlung ausgeführt wird, und der Remoteserver stellt einen anderen Server dar, von dem während der Problembehandlung die E-Mail-Adresse des lokalen Servers gesendet wird.

Es können jeweils nur von einem Server E-Mails gesendet werden. Wenn Datenbank-E-Mail auf dem Remoteserver so konfiguriert ist, dass E-Mails vom lokalen Server gesendet werden, können auf dem Remoteserver keine E-Mails mehr gesendet werden.

Wenn vom Remoteserver E-Mails gesendet werden, die auf dem lokalen Server generiert wurden, werden alle Eintragungen in msdb-Tabellen für diese E-Mails sowie alle Datenbank-E-Mail-Protokollfehlereinträge für diese E-Mails auf dem lokalen Server vorgenommen. Wenn das Senden von E-Mails auf dem lokalen Server wieder aufgenommen wird und der Remoteserver für das Senden der E-Mails des lokalen Servers konfiguriert ist, können sämtliche E-Mail-Nachrichten von jedem Server gesendet werden. Wenn Sie wissen möchten, von welchem Server eine bestimmte E-Mail-Nachricht gesendet wurde, müssen Sie sich den Nachrichtenkopf genauer ansehen.

Bb326746.note(de-de,SQL.90).gifHinweis:
Wenn Sie die folgenden Prozeduren ausführen möchten, muss sowohl auf dem lokalen Server als auch auf dem Remoteserver SQL Server 2005 Service Pack 2 oder eine höhere Version ausgeführt werden.

Prozeduren

So konfigurieren Sie den Remoteserver für das Senden der E-Mail-Nachrichten des lokalen Servers

  1. Stellen Sie sicher, dass Datenbank-E-Mail auf dem Remoteserver eingerichtet ist. Informationen zum Einrichten von Datenbank-E-Mail finden Sie unter Vorgehensweisen für Datenbank-E-Mail.

  2. Erstellen Sie ein Profil auf dem Remoteserver, das mit allen Profilen auf dem lokalen Server identisch ist, die von der während der Problembehandlung generierten E-Mail-Adresse verwendet werden. Jedes Profil muss ein gültiges Konto aufweisen, das Konto muss jedoch nicht mit dem Konto übereinstimmen, das demselben Profil auf dem lokalen Server zugeordnet ist.

  3. Stellen Sie sicher, dass jedes Konto mit Windows-authentifizierter Anmeldung, das Mitglied von DatabaseMailUserRole auf dem lokalen Server ist, auch Mitglied derselben Rolle auf dem Remoteserver ist, wenn die Mitgliedschaft zum Senden von auf dem lokalen Server generierten E-Mails erforderlich ist

  4. Erstellen Sie eine Textdatei mit dem Namen DatabaseMail90.exe.config und mit folgendem Inhalt. Ersetzen Sie LocalServerName durch den Namen des lokalen Servers, und behalten Sie msdb für DatabaseName bei.

    <configuration>
        <appSettings>
            <add key="DatabaseServerName" value ="LocalServerName" />
            <add key="DatabaseName" value ="msdb" />
        </appSettings>
    </configuration>
    
  5. Speichern Sie die Datei auf dem Remoteserver im selben Ordner (\MSSQL\Binn) unter DatabaseMail90.exe. Der Standardpfad lautet < drive >\Programme\Microsoft SQL Server\MSSQL.1\MSSQL\Binn.

  6. Wenn Sie Datenbank-E-Mail für das Senden von E-Mails über einen anderen Server konfigurieren möchten, führen Sie folgenden Code auf dem Remoteserver aus.

    Bb326746.note(de-de,SQL.90).gifWichtig:
    Mit diesem Code wird ein Datensatz in eine Systemtabelle eingefügt. Ändern Sie den Code nicht. Durch eine Einschränkung wird verhindert, dass der Datensatz mehrfach eingefügt wird. Ändern Sie die Daten in dieser Systemtabelle nicht anderweitig direkt.
    USE msdb;
    GO
    INSERT INTO [msdb].[dbo].[sysmail_configuration]
        (
        [paramname]
        ,[paramvalue]
        ,[description]
        )
    VALUES
        (
        N'ReadFromConfigurationFile'
        ,N'1'
        ,N'Send mail from mail server in configuration file'
        );
    GO
    
  7. Starten Sie Datenbank-E-Mail neu, indem Sie dbo.sysmail_start_sp auf dem Remoteserver ausführen. Sie müssen diese gespeicherte Prozedur bei jeder Änderung von paramvalue für den ReadFromConfigurationFile-Datensatz in dbo.sysmail_configuration oder des Wertes des DatabaseServerName-Schlüssels in der Konfigurationsdatei DatabaseMail90.exe.config ausführen, damit die Änderung wirksam wird.

    USE msdb;
    GO
    EXEC dbo.sysmail_start_sp;
    GO
    

So konfigurieren Sie den Remoteserver neu, sodass die E-Mail-Nachrichten des lokalen Servers nicht mehr gesendet werden

  1. Wenn die E-Mails wieder vom lokalen Server gesendet werden sollen, führen Sie folgenden Code auf dem Remoteserver aus. Durch diesen Code wird der Remoteserver so konfiguriert, dass von ihm keine E-Mails mehr gesendet werden, die auf dem lokalen Server generiert wurden, und dass nur E-Mails gesendet werden, die auf dem Remoteserver generiert wurden.

    USE msdb;
    GO
    EXEC sysmail_configure_sp 
        @parameter_name = N'ReadFromConfigurationFile'
        ,@parameter_value = N'0';
    GO
    
  2. Starten Sie Datenbank-E-Mail neu, indem Sie dbo.sysmail_start_sp auf dem Remoteserver ausführen. Sie müssen diese gespeicherte Prozedur bei jeder Änderung von paramvalue für den ReadFromConfigurationFile-Datensatz in dbo.sysmail_configuration oder des Wertes des DatabaseServerName-Schlüssels in der Konfigurationsdatei DatabaseMail90.exe.config ausführen, damit die Änderung wirksam wird.

    USE msdb;
    GO
    EXEC dbo.sysmail_start_sp;
    GO
    

So wechseln Sie die Konfiguration von Datenbank-E-Mail auf dem Remoteserver

  • Wenn Sie den Remoteserver so festlegen möchten, dass E-Mail-Nachrichten von ihm gesendet werden, die auf einem anderen Server generiert werden, legen Sie parameter_value in msdb.dbo.sysmail_configuration für den ReadFromConfigurationFile-Datensatz auf 1 fest, und führen Sie anschließend msdb.dbo.sysmail_start_sp aus. Wenn Sie den Remoteserver so festlegen möchten, dass E-Mails von ihm gesendet werden, die auf dem Remoteserver generiert werden, legen Sie parameter_value auf 0 fest, und führen Sie dann msdb.dbo.sysmail_start_sp aus.

    USE msdb;
    GO
    EXEC sysmail_configure_sp 
        @parameter_name = N'ReadFromConfigurationFile'
        ,@parameter_value = N'0|1';
    GO
    
  • Wenn Sie den Remoteserver so konfigurieren möchten, dass von ihm E-Mails gesendet werden, die auf einem anderen lokalen Server generiert werden, ändern Sie den Wert des DatabaseServerName-Schlüssels in der Konfigurationsdatei DatabaseMail90.exe.config in den Namen dieses lokalen Servers, und führen Sie dann msdb.dbo.sysmail_start_sp aus.

Berechtigungen

Die EXECUTE-Berechtigung für dbo.sysmail_start_sp und sysmail_configure_sp sowie die INSERT-Berechtigung für dbo.sysmail_configuration wird Mitgliedern der festen Serverrolle sysadmin standardmäßig erteilt.

Zum Erstellen der Konfigurationsdatei unter \MSSQL\Binn ist die NTFS-Berechtigung erforderlich.

Es empfiehlt sich, dass das Anmeldekonto, mit dem diese Problembehandlungsprozeduren ausgeführt werden, für den lokalen Server sowie für den Remoteserver Mitglied der festen Serverrolle sysadmin ist.

Siehe auch

Aufgaben

Problembehandlung bei Datenbank-E-Mail

Hilfe und Informationen

Informationsquellen für SQL Server 2005