[Cascavel-pm] dúvidas com relação a enviar emails usando módulos Perl
Alceu R. de Freitas Jr.
glasswalk3r em yahoo.com.br
Sexta Março 16 14:33:18 PDT 2007
--- Luis Motta Campos <luismottacampos em yahoo.co.uk>
escreveu:
> On Mar 12, 2007, at 5:16 PM, Alceu R. de Freitas Jr.
> wrote:
> > 1 - Não consigo me conectar no Exchange Server
> pela
> > porta 25: eu poderia tentar resolver com o
> > departamento de TI daqui, mas vai demorar tempo
> demais
> > e eu precisaria disso para ontem.
>
> O MacGyver vai te ajudar com isso: ele
> implementou o
> Net::SMTP::Server. :-D
Isso me gera outro problema: eu tenho que mandar email
via Exchange usando minha conta coorporativa. Além do
mais, eles devem ter algum controle de SPAM.
> > 2 - Eu tentei utilizar OLE em conjunto com o
> Outlook
> > como alternativa, mas isso trouxe outros
> problemas,
> Ninguém mandou usar Sistemas Operacionais de
> brinquedo... ;-)
> Descarta isso, carinha. Do ponto de vista do
> windows,
> implementando coisas assim, você parece um vírus ou
> worm de
> computador... ;-) e ninguém quer que um programa
> Perl seja confundido
> com uma coisa tão... tão... tão baixa. ;-)
Bem... minhas últimas tentativas foram tentar usar o
MAPI, que teoricamente estariam disponível com a
instalação do Outlook. Só tem um probleminha: essa
nhaca não funciona nem com reza brava. Alguns links de
referência:
http://www.unix.org.ua/orelly/perl/sysadmin/ch08_01.htm
http://www.programmingtalk.com/archive/index.php/t-2159.html
http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/faq/Windows/ActivePerl-Winfaq9.html#Is_there_a_way_to_access_MAPI_fr
Tudo o que eu consegui foi essa mensagem de erro:
Win32::OLE(0.1707) error 0x800401f3: "Invalid class
string"
Se nem programadores de ASP conseguem usar essa
tranqueira, quem diria eu que nem sou fã de
programação em ambientes MS.
Como a quantidade de emails nem era tão grande assim,
eu consegui uma solução meia-boca criando os emails no
Outlook e salvando-os na pasta de "draft". Isso me
permitia dar uma lida nos emails antes de enviar, o
que é bem útil no meu caso, e me poupa um bocado de
trabalho ao ter que dizer um monte de informação
repetida (ou ficar fazendo CRTL+C e CRTL+V). Ainda dá
para criar emails em HTML sem ter que usar nenhum
módulo MIME::*.
Lá vai um pedaço do código, para os possíveis
interessados:
sub create_email {
my $body = shift;
my $addresse = shift;
my $subject = shift;
my $Outlook =
Win32::OLE->GetActiveObject('Outlook.Application')
|| Win32::OLE->new('Outlook.Application');
# Create Mail Item
my $item = $Outlook->CreateItem(0); # 0 = mail
item.
die "Outlook is not running, cannot send mail.\n"
unless ( defined($item) );
$item->{Subject} = $subject;
$item->{To} = $addresse;
# setting the email body as HTML
$item->{BodyFormat} = olFormatHTML;
$item->{HTMLBody} = $body;
$item->{Cc} = BOSSES;
# generates an error message, don't know why. Anyway,
Outlook picks the default
# which in fact is the same email address
# 2=high, 1=normal, 0=low
$item->{'Importance'} = 2;
$item->{ReadReceiptRequested} = 1;
# Send the Email
$item->Save();
}
Isso me ajudou nesse caso específico, mas para
qualquer coisa que involva mandar muitos emails, a
melhor forma mesmo é conversar com o administrador da
rede e dar um jeito de fazer o acesso via SMTP mesmo.
[]'s
Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/
Mais detalhes sobre a lista de discussão Cascavel-pm