[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