Fórum Enviar Email pelo Delphi usando o Outlook #380487
01/07/2010
0
estou com um problema e gostaria que voces me ajudassem
estou tentando enviar um email pelo delphi usando o outllook,
consegui abrir o outlook e preecher os campos PARA, ASSUNTO e MENSAGEM
só que tem um detalhe..
na MENSAGEM nao consigo quebrar linha, portanto o Outlook quando abre, aparece a mensagem corrente.
Eu preciso que seja assim:
PARA: teste@teste.com.br
ASSUNTO: Teste Envio
MENSAGEM: teste 1
teste 2
e assim por diante.
só que sai assim
MENSAGEM: teste1teste2e assim por diante
já tentei usar #13 e/ou #10 e nada funcionou
aki esta o codigo que estou usando
procedure TfrmPRINCIPAL.SpeedButton1Click(Sender: TObject);
var mensagem: String;
var m1:string;
begin
m1:=' TESTE MENSAGEM '+#13#10+''
+'teste 1'+#13+''
+'teste 2 ';
completo:= 'mailto:teste@teste.com.br'+
'?subject=teste assunto '+
'&body= '+m1+' ';
ShellExecute(GetDesktopWindow,'open',pchar(mensagem),nil,nil,sw_ShowNormal);
Obrigado
Rodrigo
Curtir tópico
+ 0Posts
01/07/2010
Fábio Cruz
Gostei + 0
01/07/2010
Euclides Cunha
Gostei + 0
01/07/2010
Marco Salles
const
sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF}
{$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF}
{$IFDEF MACOSX} AnsiChar(#10) {$ENDIF};
Gostei + 0
01/07/2010
Marco Salles
const
sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF}
{$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF}
{$IFDEF MACOSX} AnsiChar(#10) {$ENDIF};
Gostei + 0
02/07/2010
Rodrigo
Muito Obrigado
Gostei + 0
02/07/2010
Rodrigo
Obrigado
Gostei + 0
02/07/2010
Rodrigo
agradecei se voce pudess postar os codigos certinho ou entao me mandar no email rodrigoantonioli@hotmail.com
Muito Grato
Gostei + 0
02/07/2010
Marco Salles
const
sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF}
{$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF}
{$IFDEF MACOSX} AnsiChar(#10) {$ENDIF};
se tiver no MACOSX será 10 .. E futuramente Outros Sistemas Para Quebrar Linha
Recomendável
Showmessage('Quebrar'+sLineBreak+'Linha');
Mais Usual
Showmessage('Quebrar'+#13#10+'Linha');
Gostei + 0
02/07/2010
Euclides Cunha
Mas pelo o que entendi do seu problema é que esta concatenando todas suas string, transformando-as em uma só.., ai da problema mesmo.. no corpo do e-mail.. pode concatenar e utilizar a função "quebra de linha".. mas o assunto é um paramentro a parte.. poste toda sua rotina para dar uma olhada...
IdPOP3.Host := 'pop.mail.yahoo.com.br'; IdPOP3.Password := 'suasenha'; IdPOP3.UserId := 'usuario'; IdPOP3.Port := 110; IdPOP3.Connect; // Mensagem IdMessage1.Subject := 'assunto'; IdMessage1.Body.Text := 'Corpo do e-mail'; // Remetente IdMessage1.From.Address := 'usuario@yahoo.com.br'; IdMessage1.From.Name := SysComputerName(); //captura o nome da máquina //IdMsgSend.ReplyTo.EMailAddresses := 'from@ficticio.com.br'; //não precisa // Anexo IdMessage1.MessageParts.Clear; TIdAttachment.create(idmessage1.MessageParts, TFileName('nomearquivo.ext')); // Destinatario IdMessage1.Recipients.EMailAddresses := 'usuario@yahoo.com.br'; // Autenticacao - Use apenas quando o servidor exigir IdSMTP.AuthenticationType := atLogin; IdSMTP.UserId := 'usuario'; IdSMTP.Password := 'senha'; // Dados do Servidor IdSMTP.Host := 'smtp.mail.yahoo.com.br'; IdSMTP.Port := 25; IdSMTP.Connect; try IdSMTP.Send(IdMessage1); //ShowMessage('Enviado com Sucesso'); finally IdSMTP.Disconnect; end; IdPOP3.Disconnect;
Gostei + 0
02/07/2010
Rodrigo
pois aki esta a codificação
procedure TfrmPRINCIPAL.SpeedButton1Click(Sender: TObject);
var completo: String;
var m1:string;
begin
m1:=' ABERTURA DE CHAMADO TECNICO '+#13#10+''
+'teste 1'+#13+''
+'teste 2 ';
completo:= 'mailto:dwi@com4.com.br'+
'?subject=Abertura de Chamado Técnico '+
'&body= '+m1+' ';
ShellExecute(GetDesktopWindow,'open',pchar(completo),nil,nil,sw_ShowNormal);
end;
e o que aparece é assim:
Agradeço desde já.
Gostei + 0
02/07/2010
Marco Salles
Gostei + 0
03/07/2010
Rodrigo
consegui fazer do jeito do Euclides
valeu mesmo!
abraço!
Gostei + 0
03/07/2010
Marco Salles
Gostei + 0
22/12/2011
Rafael
consegui fazer do jeito do Euclides
valeu mesmo!
abraço!
Sei que já conseguiu mas para outros que chegarem a esse post informo que é possível quebrar linha colocando o caractere %0A após a sua string. Não esqueça de concatenar-> QueryConsultaNOME.Text+%0A
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)