2010-10-21 15 views
2

J'utilise cdo d'envoyer un courriel le code suivant necdoSendUsingPort donne 8004020f mais cdoSendUsingPickup fonctionne

Set cdoConfig = CreateObject("CDO.Configuration") 

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

Lorsque j'envoie un e-mail que je reçois l'erreur suivante

8004020f 

J'ai ensuite changé le code ce qui suit:

Set cdoConfig = CreateObject("CDO.Configuration") 

With cdoConfig.Fields 
    .Item(cdoSendUsingMethod) = cdoSendUsingPickup 
    .Item(cdoSMTPServer) = "localhost" 
    .Update 
End With 

L'email envoie sans problème. Quelles mesures pourrais-je prendre pour résoudre les problèmes liés au fonctionnement de cdoSendUsingPort?

Répondre

1

Professeur Google trouve (dans l'ordre):
- Several options: serveur désactive le relais anonyme, serveur rejette des domaines spécifiques bénéficiaires, le destinataire est rejeté par le serveur SMTP de manière inattendue, et/ou les paramètres de proxy ou pare-feu bloquent le courrier.
- Your mailserver is configured to not relay from your source machine.
- ... et plusieurs autres choses qui se résument à la première liaison répertoriée.

Certaines de ces choses peuvent être testées directement par telnet depuis l'expéditeur vers le serveur de messagerie, performing a normal SMTP interaction, et voir quels messages sont affichés.

2

Avec cdoSendUsingPort, CDO tente d'ouvrir une connexion au serveur SMTP que vous spécifiez (dans votre cas, localhost) sur le port TCP 25. Je suppose que vous n'êtes pas en cours d'exécution d'un serveur SMTP sur votre machine, donc rien est à l'écoute port 25 et l'appel échoue.

Avec cdoSendUsingPickup, CDO transmet le message au pickup directory de votre instance IIS locale pour traitement ultérieur. Je suppose que vous avez IIS installé sur votre machine et que son module SMTP est configuré pour utiliser pickup, donc l'appel réussit.