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.
Hinweis: |
---|
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.
Hinweis: |
---|
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
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.
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.
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
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 Siemsdb
fürDatabaseName
bei.<configuration> <appSettings> <add key="DatabaseServerName" value ="LocalServerName" /> <add key="DatabaseName" value ="msdb" /> </appSettings> </configuration>
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.
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.
Wichtig: 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
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 denUSE 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
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
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 denUSE 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 denReadFromConfigurationFile
-Datensatz auf1
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 Sieparameter_value
auf0
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