Ir para conteúdo

Sistema Email System 1.2


Vampirinhoo

Posts Recomendados

* Autor: Obex Sys

* Tested on: TFS 0.3.6

* Requerimento:

 

o Lua socket > Lua modules > download aki

o Conta no Yahoo mail

 

Depois de postar tweets agora você pode enviar email para seus players, Não pense que é igual outros sevrer que você fala !email e ve o email pelo jogo, dessa vez você envia um email para os players do seu server! ai eles vão no hotmail, gmail o que for e leem o email

 

Primeiro vou falar como fiz. Eu usei o server SMTP do yaddo. É de graça qualquer um que tiver conta no yahoo pode usar. Se quiser mudar para outro servidor SMTP pode mudar, só nao mude pro SMTP do gmail por que ele usa SSL (Secure Socket Layer) e o script nao suporta isso.

 

Primeiro crie uma conta no yahoo, depois instale o lua modules.

Agora adcione isso no talkactions.xml

 

 

<talkaction log="yes" words="/email" access="5" event="script" value="email.lua"/>

 

E em email.lua isso:

Lua:

 

--[[Config]]
local config={
--Email/pass
user = 'seu_email@yahoo.com.br',
pass = 'suasenha123',
---SMTP config
smtpserver="smtp.mail.yahoo.com.br", -- dont change it
smtpport= 587, -- dont change it
}
--Script By Obex SyS
local mime = require("mime")
local smtp = require("socket.smtp")
dofile('config.lua')
config.username = serverName
function send_mail(cid,mesgt,config,to)
local _, err = smtp.send {
   from = '<'..config.user..'>',
   rcpt = '<'..to..'>',
   source = mesgt,
   user = config.user,
   password = config.pass,
   server = config.smtpserver,
   port = config.smtpport,
   domain = 'yahoo.com.br',
}
if not err then
	addEvent(doPlayerSendTextMessage,100,cid,25,'Email sent')
else
	addEvent(doPlayerSendTextMessage,100,cid,25,'Canno  t send email: '..tostring(err))
end
end
function getPlayerEmailByName(e) -- Function by ObeX SyS
local cid = getPlayerByName(e)
if not cid or not isPlayer(cid) then
	return false
end
local f = db.getResult('select `email` from accounts where id = '..getPlayerAccountId(cid))
if f:getID() ~= -1 then
	return f:getDataString('email'),f:free()
else
	return false
end
end

function onSay(cid, words, param, channel)--Script By ObeX SyS
if not smtp then
	doPlayerSendTextMessage(cid,25,'Install lua socket.')
	return true
end
local email,sub,msg = param:match('(.-@?.?)%s*,%s*(.-)%s*,%s*(.+)')
if not email:find('@') then
	email = getPlayerEmailByName(email)
end
if sub and msg then
	if not email or email:len() < 3 then
		doPlayerSendTextMessage(cid,25,'Invalid email.')
		return true
	end
	doPlayerSendTextMessage(cid,25,('Sending email to %s\nSubject:%s\nBody:%s'):format(email,sub,msg))
	local mesgt =  smtp.message({
	  headers = {
		from = config.username.." "..'<'..config.user..'>',
		to = '<'..email..'>',
		subject = sub,
	  },
	  body = mime.eol(0, ([[%s

%s
Sent by: %s
-----------------------------------
Script by ObeX SyS
-----------------------------------]]):format(msg or '',serverName or '-',getCreatureName(cid))),
	})
	addEvent(send_mail,200,cid,mesgt,config,email)
else
	doPlayerSendTextMessage(cid,25,'Use like this: /email name@hotmail.com, Subject, Message')
end
return true
end

 

 

Não esqueça de configurar!

 

Agora basta usar o comando. Você pode usar assim:

 

* /email ObeX SyS,Assunto,Mensagem

* /email gatinlp@hotmail.com,Assunto,Mensagem

 

 

No começo eu falei para baixar o o Lua socket,Lua modules então vou colocar o download.

 

Esse é um sistema simples que eu fiz apenas para facilitar a instalação de LuaSocket e outras libs em seu server, é como uma OTAL so que comprimida e restrita à apenas exteções em lua, podendo ser de GD ou se quiser inutilmente lua interface, se quiser pode criar modulos eu tenho um exemplo.

 

O sistema é uma pasta com um XML que você define quais LIBS quer em seu server, você poe la exemplo, socket, depois baixa o lua socket e joga na pasta modules/scripts.

 

Vamos lá!

O sistema foi testado e funciona em QUALQUER servidor, o que pode afetar o funcionamento é sua instalação.

 

Instalação

 

 1º - Baixe o arquivo anexado ao topico.
   2º - Coloque a pasta modules na pasta data do seu server.
   3º -
   Se você usa TFS 0.3.6 ponha o arquivo modules.lua em data/lib
   -----------
   Se você usa TFS 0.3.5 ou menores coloque o arquivo modules.lua em data/lib e em data.lua coloque isso:
   dofile('data/lib/modules.lua')
   -----------
   Se você usa Open Tibia coloque o modules.lua na pasta data e abra o global.lua e ponha isso:
   dofile('data/modules.lua')
   -----------
   4º - Reload e pronto!

 

Apos instalar vamos a um exempl ode como cirar um modulo.

Lua:

 

--[[
Como cirar um modulo
]]
--Isso aqui é pra economizar memoria, vc define tudo q vai usar
local string = require("string")
local base = _G
-- aqui vc poe o nome do modulo (o noem tem que ser igual do arquivo sem o .lua)
module('example')
--Versao
_VERSION = "Example lib 1.0"

 

-- As funçoes aki

 

function myprint(...) --example.myprint
local arg = {...}
for i,b in base.pairs(arg) do
	io.write(tostring(b))
	if i ~= #arg then
		io.write(',    ')
	end
end
end

function array(...) -- example.array
return {...}
end

function replace(s,m,d) --example.replace
return s:gsub(m,d)
end

 

Ai é so jogar na pasta modules/scripts e adcionar isso no modules.xml

Código:

 

<module name="example"/>

Example é o nome do modulo

 

Site para download de libs Lua forge

 

Libs recomendadas:

 

* GD

* lua file system

 

 

 

Como instalar modulos

 

 

 

Primeiro baixe o modulo

Vou usar como exemplo LUAGD http://luaforge.net/frs/download.php...33r2-win32.zip (1.6mb)

Código:

 

<module name="gd"/>

 

Quando terminar abra o .zip e abra a pasta, dentro vai ter VARIOS arquivos. Copie todas as DLLs e cole na pasta data/modules/scripts e depois adcione essa TAG no modules.xml

Arquivos Anexados

Tipo de Arquivo: zip modules.zip (1,02 MB, 112 visitas)

 

 

Espero que tenho o ajuda-do

 

Att ObeX SyS :tongue:

Editado por Vampirinhoo
Link para o comentário
Compartilhar em outros sites

Esses nego hj em dia cada vez + noob, pega o script do nego posta aki no xtibia nao pede autorizaçao e nem coloca creditos e Rippa Mapps ainda =)

 

 

Vou Alertar o Mock ve se ele Autorizou postar aqui, Pq se nao tu vai te ferra mlk ^^

e o Mock nao deicha qualquer 1 Postar!!

 

Bjos :*

Link para o comentário
Compartilhar em outros sites

  • 6 months later...
×
×
  • Criar Novo...