Как отправить письмо, используя vbscript и удаленный smtp сервер. Я подключен через прокси - PullRequest
1 голос
/ 12 февраля 2011

Я пытался написать vbscript на почту, используя gmail smtp, но он не работает, потому что Я подключен к интернету через прокси. Ниже мой код.


Set objMessage = CreateObject("CDO.Message") 
objMessage.Subject = "Example CDO Message" 
objMessage.From = "myemail@gmail.com" 
objMessage.To = "tomail@gmail.com" 
objMessage.TextBody = "This is some sample message text."

'==This section provides the configuration information for the remote SMTP server.
'==Normally you will only change the server name or IP.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 

'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"

'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "MyUserName"

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "MyPassword"


objMessage.Configuration.Fields.Update

'==End remote SMTP server configuration section==

objMessage.Send

когда я запускаю этот код, он выдает мне сообщение об ошибке "Транспорт не смог подключиться к серверу" Может ли кто-нибудь привести мне пример. Я подключен к интернету через прокси.

Спасибо Waqar

Ответы [ 3 ]

1 голос
/ 15 июня 2012

Еще одна вещь, на которую нужно обратить внимание (у меня возникла та же проблема), - убедитесь, что настройки DNS на адаптере указаны правильно.

Я дал своему серверу статический IP-адрес, но, вероятно, пропустил адреса DNS-сервера, поэтомуничто не могло быть решено.Просто недосмотр с моей стороны, но подумал, что упомяну это.

1 голос
/ 13 февраля 2011

Поскольку вашему коду не удается подключиться к серверу, прежде чем беспокоиться о вашем коде, удостоверились ли вы, что вообще можете подключиться к серверу через этот порт?

Самый простой способ проверить это через Telnet. Предполагая, что на вашем компьютере установлено Telnet, просто откройте командную строку и введите telnet smtp.gmail.com 465. Если это не удается, то ваш код тоже не может этого сделать. Наиболее распространенная причина этого сбоя связана с брандмауэром, который блокирует использование порта 465, и, поскольку вы упоминаете прокси-сервер, я предполагаю, что это также может быть проблемой.

Если вам удастся подключиться к этому порту, см. Принятый ответ на этот вопрос для примера кода VBScript (а также предложение, что вы можете вместо этого использовать простой инструмент командной строки SMTP, если это будет работать лучше).

0 голосов
/ 18 марта 2013

Поскольку вы используете интернет-прокси, вам нужно использовать urlproxyserver Field для подключения.что-то вроде этого должно быть сделано:

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/urlproxyserver") = "yourproxy:port" 

Кроме того, если вы когда-либо используете прокси, но подключаетесь к локальному IP, вы можете пропустить сканирование прокси. Это можно сделать с помощью urlproxybypass Fieldи его следует использовать следующим образом:

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/urlproxybypass") = "<local>"

Более подробную информацию можно найти здесь и здесь .Пример можно найти здесь

надеюсь, это поможет.

...