Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   enviar mail (https://www.clubdelphi.com/foros/showthread.php?t=21084)

amadis 05-05-2005 18:59:41

enviar mail
 
Que tal Gente soy muy nuevo en esto hace 4 meses que ando investigando!

Estoy intentando hacer una opcion que me envie un mail pero no logro encontrar DONDE PONER LA DIRECCION DEL ESTINATARIO, encambio si encontre donde poner el asunto y el cuerpo del mensaje!

les dejo el codigo que utilicé a ver si me pueden ayudar! :(

--------------------------------------------------------------

var
MapiMessage: TMapiMessage;
MError: Cardinal;
// lpszAddress: LPSTR;
// ulRecipClass: Cardinal;
begin
with MapiMessage do
begin
ulReserved := 0;
lpszSubject := 'Enviado desde mi prgrama';
lpszNoteText := PChar(Dbedit5.Text);
lpszMessageType := nil;
// lpszAddress:= PChar(Dbedit5.Text);
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
lpOriginator := nil;
nRecipCount := 0;
lpRecips := nil;
nFileCount := 0;
lpFiles := nil;
end;
MError := MapiSendMail(0, Application.Handle, MapiMessage,
MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
if MError <> 0 then MessageDlg(SSendError, mtError, [mbOK], 0);
end;

lgarcia 05-05-2005 20:41:01

enviar email
 
Hola

De algun hilo del Club recopile el siguiente codigo que te debe servir

Enviar email, con adjunto, y sin abrir navegador.

// Para enviar un mail, sin abrir el navegador, enviando el destinatario, cc, bcc, y ficheros adjuntos.
Necesario :
NMSMTP1: TNMSMTP; // Componente de envio de correo
mCuerpo: TMemo; // Memo del cuerpo del mail
Memo: TMemo; // Memo donde se muestra el proceso de envio del mail
txtServidor : TEdit;
txtTitulo: TEdit;
txtPara: TEdit;
txtDe: TEdit;
txtCC: TEdit;
txtBcc: TEdit;
txtAdjunto: TEdit;
procedure TForm1.bEnviarClick(Sender: TObject);
begin
Memo.clear;
// Nombre del Servidor ...
NMSMTP1.Host:=trim( txtServidor.Text );
// Puerto de correo ...
NMSMTP1.Port:=25;
try
Memo.Lines.Add('Conectando con ' + trim( txtServidor.Text ) + ', puerto 25' );
// Conectando ...
NMSMTP1.Connect;
Except
// Imposible conectar con el servidor de correo ...
Memo.lines.add('Fallo en la conexion con el servidor SMTP.');
Exit;
end;
Memo.lines.add( 'Componiendo mail ...' );
with NMSMTP1 do begin
// Borra parametros por defecto ...
ClearParameters();
// Dirección origen ...
if ( trim( txtDe.Text ) <> '' ) then
PostMessage.FromAddress:= trim( txtDe.Text )
else
PostMessage.FromAddress:='desconocido@anonimo.dominio';
Memo.lines.add( 'Direccion origen : ' + PostMessage.FromAddress );
// Dirección destino. Se pueden indicar varias ( TStringList ) ...
PostMessage.ToAddress.Add( trim( txtPara.Text ) );
Memo.lines.add( 'Dirección destino : ' + trim( txtPara.Text ) );
// Direcciones copia. Se pueden indicar varias ( TStringList ) ...
if( trim( txtCC.Text ) <> '' ) then begin
PostMessage.ToCarbonCopy.Add( trim( txtCC.Text ) );
Memo.lines.add( 'CC : ' + trim( txtCC.Text ) );
end;
// Direcciones no visibles. Se pueden indicar varias ( TStringList ) ...
if( trim( txtBCC.Text ) <> '' ) then begin
PostMessage.ToBlindCarbonCopy.Add( trim( txtBCC.text ) );
Memo.lines.add( 'BCC : ' + trim( txtBCC.Text ) );
end;
// Titulo del mail ...
if( trim( txtTitulo.Text )='' ) then
PostMessage.subject:='[Sin titulo]'
else
PostMessage.subject:= trim( txtTitulo.Text );
Memo.lines.add( 'Subject : ' + PostMessage.subject );
// Adjuntos. Se pueden indicar varios ( TStringList ) ...
if ( trim( txtAdjunto.Text ) <> '' ) then begin
PostMessage.Attachments.Add( trim( txtAdjunto.Text ) );
Memo.lines.add( 'Adjunto : ' + trim( txtAdjunto.text ) );
end;
// Cuerpo del mail ...
if ( mCuerpo.Lines.Count > 0 ) then begin
PostMessage.body.Text:=mCuerpo.Text;
Memo.lines.add( 'Añadiendo cuerpo del mail ...' );
Memo.lines.add( ' ' );
end;
Memo.lines.add( 'Enviando ... ');
// Enviando mail ...
if ( trim( txtPara.Text ) <> '' ) then begin
SendMail;
Memo.lines.add( 'Mail enviado.');
end else
Memo.lines.add( 'Mail no enviado, no se especificó dirección de destino.' );
// Desconectando ...
Disconnect;
end;
Memo.lines.add( 'Desconectado');
end;

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer

amadis 06-05-2005 04:02:02

Respuesta
 
Gracias.. pero mas me interesaria la otra forma usando la API si alguien lo conoce... además trabaja con el cliente predeterminado de correo.

O bien alguien que conozca de esto podria husmear en la clase MAPI.H que ahi esta toda la descripcion de esa api.

Gracias desde ya por la ayuda!


La franja horaria es GMT +2. Ahora son las 09:19:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi