SMTP-соединение LuaSocket отклонено

Я хочу отправить электронное письмо на учетную запись gmail из lua, используя библиотеку сокетов.

smtp = require("socket.smtp")

address = { "<[email protected]>" }
from    = { "<[email protected]>" }
theMessage = {
 headers = {
   to = "YOU",
   cc = '"him" ',
   subject = "I got something to tell you..."
 },
 body = "You're the best."
}
r, e = smtp.send{ from = from, rcpt = address, source = smtp.message(theMessage)}

Когда я печатаю (е)

"В соединении отказано".

 print(r)

нет Есть идеи?

Я просто следую инструкциям с сайта: http://w3.impa.br/~diego/software/luasocket/smtp.html


person user1709076    schedule 06.06.2013    source источник


Ответы (1)


Возможно, вам потребуется указать IP/порт в вашей функции smtp.send.

smtp.send{ 
    from = from, 
    rcpt = address, 
    source = smtp.message(theMessage),
    server = 127.0.0.1,
    port   = 25
}
person Tom Studee    schedule 06.06.2013
comment
Привет, я не запускаю службу smtp. Я пытался следовать инструкциям здесь msdn.microsoft.com /en-us/library/8b83ac7t(v=vs.100).aspx, но не находит параметр «включить smtp для IIS». Я вижу только «FTP-сервер», «Инструменты веб-управления» и «Всемирные веб-службы». (добавление «local» не должно иметь значения, хотя я пробовал, поскольку «local» просто указывает область действия переменной, являющейся «локальной» или «глобальной». Спасибо за ваш ответ. - person user1709076; 07.06.2013
comment
Привет, Том, еще раз спасибо. Мы приближаемся. Когда я делаю «ping mail.localhost.com», я получаю ответ. Когда я делаю «ping smtp.localhost.com», я также получаю ответ. Я пробовал: r, e = smtp.send{..., server = smtp.localhost.com, port = 25} и r, e = smtp.send{..., server = mail.localhost.com, port = 25} - я все еще получаю сообщение об отказе в соединении. Большое спасибо - person user1709076; 10.06.2013
comment
попробуйте выше, если это не сработает, попробуйте открыть telnet 127.0.0.1 на порту 25 и посмотреть, сможете ли вы увидеть ответ - person Tom Studee; 10.06.2013
comment
Привет, Том, я попробовал smtp.send{... сервер = 127.0.0.1, порт = 25}. Когда я делаю «telnet localhost 25», я получаю «Подключение к 127.0.0.1... Не удалось открыть соединение с хостом через порт 25: Ошибка подключения» - person user1709076; 10.06.2013
comment
@user1709076 user1709076 это, вероятно, означает, что на самом деле служба smtp не работает локально. вам нужно будет настроить его или использовать IP-адрес машины, на которой он уже установлен. - person Tom Studee; 10.06.2013
comment
Есть ли у вас какие-либо советы о том, как это сделать? Я слышал, что включить smtp не так просто, как использовать IIS, потому что smtp может работать только в Windows 7, если вы используете «корпоративную версию»? Если я просто отправляю электронные письма через свою учетную запись gmail, kb.siteground.com/google_free_smtp_server, указав мой luascript на smtp.google.com и войдите в систему с моим именем пользователя и паролем. Есть ли какая-либо угроза безопасности, связанная с тем, что мой пароль будет перехвачен? - person user1709076; 10.06.2013
comment
Вы можете попробовать запустить xmailserver.org. Однако, если вы используете TLS/SSL для аутентификации в Google, это достаточно безопасно, чтобы я не беспокоился об этом. - person Tom Studee; 11.06.2013