Risoluzione dei problemi relativi a Posta elettronica database: invio di posta elettronica da un server remoto durante la risoluzione dei problemi in un server locale
Data creazione: 12 dicembre 2006
In questo argomento vengono descritte le procedure per utilizzare temporaneamente un server remoto per l'invio della posta elettronica generata in un server locale. Queste procedure risultano utili durante le attività di risoluzione dei problemi e correzione della configurazione di Posta elettronica database nel server locale. Le informazioni disponibili in questo argomento si applicano solo alla posta elettronica inviata tramite Posta elettronica database e non riguardano la posta elettronica inviata tramite xp_sendmail o utilità di terze parti.
[!NOTA] In questo argomento, con "server locale" ci si riferisce al server nel quale si eseguono le attività di risoluzione dei problemi e con "server remoto" si indica un altro server che gestisce l'invio della posta elettronica del server locale durante la risoluzione dei problemi.
È possibile inviare posta elettronica da un solo server alla volta. Se si configura Posta elettronica database nel server remoto per l'invio della posta elettronica dal server locale, il server remoto non potrà più inviare la posta generata al suo interno.
Quando il server remoto invia la posta elettronica generata nel server locale, tutti gli inserimenti nelle tabelle del database msdb relativi a tale posta elettronica e le eventuali immissioni per errori nel log di Posta elettronica database per tale posta elettronica vengono eseguiti nel server locale. Se il server locale riprende a inviare posta elettronica quando il server remoto è ancora configurato per l'invio della posta di tale server locale, i messaggi di posta elettronica possono essere inviati da entrambi i server. Per determinare quale server ha inviato un messaggio di posta elettronica, è necessario esaminare l'intestazione del messaggio.
[!NOTA] Per eseguire le procedure seguenti, è necessario che sia il server locale che il server remoto eseguano SQL Server 2005 Service Pack 2 o versioni successive.
Procedure
Per configurare il server remoto per l'invio dei messaggi di posta elettronica del server locale
Verificare che Posta elettronica database sia configurato nel server remoto. Per informazioni su come configurare Posta elettronica database, vedere Procedure per Posta elettronica database.
Creare un profilo identico nel server remoto per ogni profilo nel server locale che verrà utilizzato dalla posta elettronica generata durante le attività di risoluzione dei problemi. A ogni profilo deve essere associato un account valido, ma non è necessario che l'account sia lo stesso associato al profilo corrispondente nel server locale.
Verificare che un eventuale account di accesso con autenticazione Windows membro del ruolo DatabaseMailUserRole nel server locale sia un membro dello stesso ruolo anche nel server remoto, se tale appartenenza è richiesta per l'invio della posta elettronica generata nel server locale
Creare un file di testo denominato DatabaseMail90.exe.config con il contenuto indicato di seguito. Sostituire
LocalServerName
con il nome del server locale e manteneremsdb
perDatabaseName
<configuration> <appSettings> <add key="DatabaseServerName" value ="LocalServerName" /> <add key="DatabaseName" value ="msdb" /> </appSettings> </configuration>
Salvare il file nel server remoto nella stessa cartella, \MSSQL\Binn, con il nome DatabaseMail90.exe. Il percorso predefinito è < drive >\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Binn.
Per configurare Posta elettronica database per l'invio della posta elettronica da un altro server, eseguire il codice seguente nel server remoto.
Importante: Questo codice consente di inserire un record in una tabella di sistema. Non modificare il codice. Il codice include un vincolo che impedirà l'inserimento del record più di una volta. Non modificare direttamente in altri modi i dati in questa tabella di sistema. 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
Riavviare Posta elettronica database eseguendo
dbo.sysmail_start_sp
nel server remoto. Per rendere effettiva la modifica, è necessario eseguire questa stored procedure ogni volta che viene modificato il valore paramvalue per il recordUSE msdb; GO EXEC dbo.sysmail_start_sp; GO
Per riconfigurare il server remoto per interrompere l'invio dei messaggi di posta elettronica del server locale
Per riprendere l'invio della posta elettronica dal server locale, eseguire il codice seguente nel server remoto. Tale codice consente di configurare il server remoto per interrompere l'invio della posta elettronica generata nel server locale e riprendere l'invio della posta generata nel server remoto.
USE msdb; GO EXEC sysmail_configure_sp @parameter_name = N'ReadFromConfigurationFile' ,@parameter_value = N'0'; GO
Riavviare Posta elettronica database eseguendo
dbo.sysmail_start_sp
nel server remoto. Per rendere effettiva la modifica, è necessario eseguire questa stored procedure ogni volta che viene modificato il valore paramvalue per il recordUSE msdb; GO EXEC dbo.sysmail_start_sp; GO
Per cambiare la configurazione di Posta elettronica database nel server remoto
Per riconfigurare il server remoto per l'invio dei messaggi di posta elettronica generati in un altro server, in msdb.dbo.sysmail_configuration, impostare il valore
parameter_value
per il recordReadFromConfigurationFile
su1
e quindi eseguire msdb.dbo.sysmail_start_sp. Per riconfigurare il server remoto per l'invio della posta elettronica generata nel server remoto, impostare il valoreparameter_value
su0
e quindi eseguire msdb.dbo.sysmail_start_sp.USE msdb; GO EXEC sysmail_configure_sp @parameter_name = N'ReadFromConfigurationFile' ,@parameter_value = N'0|1'; GO
Per configurare il server remoto per l'invio di posta elettronica generata in un diverso server locale, sostituire il valore nella chiave DatabaseServerName nel file di configurazione DatabaseMail90.exe.config con il nome di tale server locale e quindi eseguire msdb.dbo.sysmail_start_sp.
Autorizzazioni
L'autorizzazione EXECUTE per dbo.sysmail_start_sp e sysmail_configure_sp e l'autorizzazione INSERT per dbo.sysmail_configuration vengono concesse ai membri del ruolo predefinito del server sysadmin.
Sono necessarie autorizzazioni NTFS per creare il file di configurazione in \MSSQL\Binn.
È consigliabile che l'account di accesso utilizzato per eseguire queste procedure di risoluzione dei problemi sia un membro del ruolo predefinito del server sysadmin sia nel server locale che nel server remoto.
Vedere anche
Attività
Risoluzione dei problemi relativi a Posta elettronica database