Problemas com Envio de Email no Outlook

09/02/2013

1

Boa noite pessoal.

Eu sei que esse assunto já foi tratado algumas vezes aqui no fórum, porém apesar de eu encontrar muita coisa, nada me ajudou, continuo com determinados erros que me impedem de avançar no meu programa..

O que acontece é o seguinte, não sei porque diabos o meu relatório não está sendo salvo no diretório que parametrizei, e fiz um passo-a-passo nele e o programa executa certinho a linha.. Alguém sabe o que pode ser?

E tenho mais uma dúvida relacionada ao outlook.. Abaixo como pode ver, a coluna onde se atribui o "Recipients" está comentada, porque se deixá-la descomentada, quando executada aparece um erro de operação anulada. Porém, quando tento abrir o outlook sem atribuir esse "Recipients", me aparece uma mensagem dizendo que tenho que ter ao menos um destinatário.. Como vocês podem ver, no fim do código estou tentando enviar o email direto, porém não é isso que quero, gostaria que abrisse o outlook para, caso o usuário queira digitar mais alguma coisa ele possa.

Vocês sabem o que pode estar errado? Tanto no problema do salvar o relatorio em .pdf como no problema de como, ao invés de diretamente enviar, abrir o outlook primeiro?

O código:

procedure Tforf02000.btEnviaEmailClick(Sender: TObject);
var
    Outlook : OleVariant;
    MailItem: Variant;
    l_caminho_relatorio, l_orcamento: string;
begin
    l_caminho_relatorio := ExtractFileDrive(Application.ExeName) + '\temp\' + 'Orc'
                         + EDnroorc.AsString + '_v' + EDverorc.AsString + '.PDF';
    l_orcamento := 'Orçamento Nº ' + EDnroorc.AsString + ' v' + EDverorc.AsString;
    try
        Outlook := GetActiveOleObject('Outlook.Application') ;
    except
        Outlook := CreateOleObject('Outlook.Application') ;
    end;
    MailItem := Outlook.CreateItem(olMailItem) ;
//    MailItem.Recipients.Add('silva.ramon@hotmail.com') ;
    MailItem.Subject := l_orcamento;
    MailItem.Body := '';

    // Salva o relatório em um diretório temporario
    f_relatorio.RPorcamento.AllowPrintToFile := True;
    f_relatorio.RPorcamento.DeviceType       := dtPDF;
    f_relatorio.RPorcamento.TextFileName     := l_caminho_relatorio;
    f_relatorio.RPorcamento.ShowPrintDialog  := False;
    f_relatorio.RPorcamento.Print;


    // Anexando o Email
    MailItem.Attachments.Add('C:\arq.txt');
    MailItem.Send;
    Outlook := Unassigned;

    Msg(l_orcamento + ' foi salvo com sucesso no diretório '
                    + l_caminho_relatorio, 1);
end;


Grato desde já, Abraço!
Responder

Posts

09/02/2013

Ramon Valentim

Alguém sabe como resolver?
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira