2010-06-09 2 views
1

J'ai du code ASP que j'ai "hérité" de mon prédécesseur (non, ce n'est pas une option pour le mettre à jour pour le moment ... prendrait un acte non seulement du Congrès, mais de tous les autres pays étrangers aussi) et j'ai un problème pour envoyer du courrier sur l'une des pages. C'est un extrait de code presque identique de l'autre page, mais celui-ci génère une erreur lorsque j'essaie de 'Envoyer'.ASP Mail Erreur: La classe d'événement pour cet abonnement est dans une partition invalide

code ci-dessous:

Set myMail=CreateObject("CDO.Message") 
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2 

'Name or IP of remote SMTP server 
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="localhost" 

'Server port 
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25 
myMail.Configuration.Fields.Update 

myMail.Subject="Subject" 
myMail.From=from_email 
myMail.To=email 
myMail.TextBody= "Body Text of message" 
myMail.Send 

L'erreur renvoyée est: Type d'erreur: (0x8004020F) La classe d'événement pour cet abonnement est dans une partition non valide

Je vous en serais reconnaissant toute Aidez-moi!!!

Merci! JFV

+0

quelle partie n'est pas identique à l'autre page? –

+0

@Gaby: Juste les adresses e-mail. J'ai confirmé que les adresses sont valides et de mon domaine. – JFV

Répondre

2

J'ai eu des problèmes similaires en essayant d'obtenir CDO au travail. J'ai trouvé un article vraiment cool sur ce site Web Why does CDO.Message give me 8004020F errors?

Voici le code que j'ai finalement eu à travailler. Je ne pourrais jamais obtenir localhost pour fonctionner comme serveur SMTP. Découvrez le nom du serveur de messagerie et assurez-vous d'utiliser ce nom.

<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Type Library" --> 
<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" --> 
<% 
Set cdoConfig = CreateObject("CDO.Configuration") 

With cdoConfig.Fields 
     .Item(cdoSendUsingMethod) = cdoSendUsingPort 
     .Item(cdoSMTPServer) = "nameofmailservergoeshere" 
     .Update 
End With 


Set cdoMessage = CreateObject("CDO.Message") 

With cdoMessage 
     Set .Configuration = cdoConfig 
     .From = "[email protected]" 
     .To = "[email protected]" 
     .Subject = "Sample CDO Message" 
     .TextBody = "This is a a test message using CDO." 
     .Send 
End With 

Set cdoMessage = Nothing 
Set cdoConfig = Nothing 
%> 

+0

Je vais vérifier demain quand je serai de retour au bureau. Merci pour l'info. Je vais vous laisser savoir comment ça se passe. – JFV

+0

@JFV: Le problème avec votre code est qu'il modifie un objet de configuration existant qui serait initialisé à partir de la configuration IIS. Le code de cette réponse crée une nouvelle instance d'un objet de configuration et remplace la configuration par défaut. A part cela, ce code fait exactement la même chose que votre code mais utalise les déclarations de la bibliothèque de types. La référence à la bibliothèque ADO n'est pas nécessaire dans ce cas. – AnthonyWJones

+0

A travaillé comme un charme! J'apprécie toute votre aide! – JFV

Questions connexes