Solved

e-mail message with client

Posted on 2000-03-18
7
183 Views
Last Modified: 2010-04-04
hi.
i want to send an e-mail message from within my application. i want the folowing:

1.message sobject,body and attachment files are writen by me.

2.message is opened with default e-mail client of user so he only have to put in the adress of his friend and send.

how can i find default e-mail client?
how can i make netscape messenger to open with subject, message body and file attachments that i want?

thanks
ori
0
Comment
Question by:omri_ori
  • 2
  • 2
  • 2
  • +1
7 Comments
 

Expert Comment

by:HamidHossain
ID: 2632757
that was 3 or 4 questions in one !! you should delete it !!.

for sending emails use TNMSMTP component wich comes with delphi 5 at the FastNet tab

you can use this function :

function EmailSend(SMTP: TNMSMTP; iniPath, Subject, ToAddrss, CC, BCC, aBody : String) :Boolean;
var
  MyIni : TIniFile;
begin
  try
    MyIni  := TIniFile.Create(iniPath + 'MyIni.ini');

    with SMTP do begin
      Host   := MyIni.ReadString('Email','Host','');
      Port   := StrToInt(MyIni.ReadString('Email','Port',''));
      UserID := MyIni.ReadString('Email','UserID','');
      Connect;
    end;

    if SMTP.Connected then begin
 
      with SMTP.PostMessage do begin
        FromAddress            := MyIni.ReadString('Email', 'Email','');
        FromName               := MyIni.ReadString('Email', 'Name', '');
        ToAddress.Text         := ToAddrss;
        ToCarbonCopy.Text      := CC;
        ToBlindCarbonCopy.Text := BCC;
        Body.Text              := aBody;
      end;

      SMTP.SendMail;
      Result := True;
    end else begin
      // Error
      Result := False;
    end;
  finally
    MyIni.Free;
  end;
end;

that function reads some info from ini File .. you can replace that with any String.

The best use of that code is to put in a general unit file for multible use with your programs.

Regards,
Hamid
0
 

Author Comment

by:omri_ori
ID: 2633314
thenks for the answer but it is important to me to work with the default mail client of the user.

if he is used to work with netscape messenger i want him to have the message redy in his composer. if he is used to outlook i want the message to open in an outlook mail message window.

thenk you again
ori
0
 
LVL 17

Accepted Solution

by:
inthe earned 100 total points
ID: 2633442
to open in default e-mail client you must use shellexecute() api
the drawback to use shellexecute is you cant add attachment it must be done by user.
to add attachment you must use mapi as above but then it wont open in default email client..

example of shellexecute:

use shellapi;

procedure TForm1.Button1Click(Sender: TObject);
Var
Buffer : String;
recip,subj,mess : String;
begin
recip:= Edit1.text;   {message recipients email address}
subj:=Edit2.Text;     {message subject}
Mess:= Memo1.Text;    {message}
Buffer:='mailto:'+recip+'?subject='+subj+'&body='+mess;
ShellExecute(Application.Handle,'open',PChar(Buffer),nil,nil,SW_Normal);
end;

Regards Barry
0
Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

 

Expert Comment

by:HamidHossain
ID: 2633461
hmmm Omri,

I think I didnt understand you till now !!

if user check his inbox with outlook he will find the message there .. if he used composer he will find it also !!

so, whats the problem !!

oh, I think you want to create a program wich checking user's inbox.

if that was the case, I think Barry is accespted.

Regards,
Hamid
0
 
LVL 12

Expert Comment

by:Faruk Onder Yerli
ID: 2633510
The unit is running 24 hour 7 day on the my server. Please investigation it.

unit u_ktvform;

interface

uses
  Windows, Messages, SysUtils, Classes, HTTPApp, Psock, NMsmtp, Db,
  DBTables;

type
  TWM = class(TWebModule)
    MailGonder: TNMSMTP;
    TMail: TTable;
    DB1: TDatabase;
    TMailNo: TIntegerField;
    TMailTanimi: TStringField;
    TMailEmail: TStringField;
    TMailKodu: TStringField;
    procedure WMWebAction1Action(Sender: TObject; Request: TWebRequest;
      Response: TWebResponse; var Handled: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  WM: TWM;

implementation

{$R *.DFM}

procedure TWM.WMWebAction1Action(Sender: TObject; Request: TWebRequest;
  Response: TWebResponse; var Handled: Boolean);
var
  Dongu : integer;
begin
  DB1.Open;
  TMail.Open;

  MailGonder.PostMessage.Body.Add('<strong>KabloTv Baþvurusu');
  MailGonder.PostMessage.Body.Add('KabloTv Baþvuru Tarihi :' + DateToStr(Date));
  MailGonder.PostMessage.Body.Add('IP No :' + Request.RemoteAddr);
  MailGonder.PostMessage.Body.Add('<hr><br>Ýstek Sahibinin Kimlik Belgesi </strong><br><br>');

  Response.Content :=Response.Content + '<br><strong>KabloTv Baþvurusu '+
                                        '<br>KabloTv Baþvuru Tarihi :' + DateToStr(Date)+
                                        '<br>IP No :' + Request.RemoteAddr+
                                        '<br><hr>';

  Response.Content :=Response.Content + '<hr><br>Ýstek Sahibinin Kimlik Belgesi </strong><br><br>';

  for dongu := 1 to 37 do begin
    if dongu = 19 then begin
      Response.Content :=Response.Content + '<hr><br><strong>Tesis Adresi </strong><br><br>';
      MailGonder.PostMessage.Body.Add('<hr><br><strong>Tesis Adresi </strong><br><br>');
    end;
    if dongu = 28 then begin
      Response.Content :=Response.Content + '<hr><br><strong>Tesis Adresinden farklý ise tebligat adresi </strong><br><br>';
      MailGonder.PostMessage.Body.Add('<hr><br><strong>Tesis Adresinden farklý ise tebligat adresi </strong><br><br>');
    end;
    if dongu = 37 then begin
      Response.Content :=Response.Content + '<hr>';
      MailGonder.PostMessage.Body.Add('<hr>');
    end;
  MailGonder.PostMessage.Body.Add(Request.ContentFields[dongu]);
  Response.Content :=Response.Content + Request.ContentFields[dongu]+'<br>';
  end;


try
  if TMail.FindKey(['SYS']) then
  MailGonder.PostMessage.FromAddress := TMailEmail.Text;

  MailGonder.PostMessage.FromName    := TMailTanimi.Text;
  MailGonder.PostMessage.Subject     := 'Kablo TV Baþvuru Formu';

  if TMail.FindKey(['KTV']) then
  MailGonder.PostMessage.ToAddress.Add(TMailEmail.Text);

  MailGonder.Connect;
  MailGonder.SendMail;
  Response.Content :=Response.Content + Request.RemoteAddr;
  MailGonder.Disconnect;
except
  Response.Content :=Response.Content + 'Mail Gitmedi';
end;
  DB1.Close;
end;
0
 
LVL 17

Expert Comment

by:inthe
ID: 2633545
bit irrelevent to the problem at hand though isnt it..
0
 

Author Comment

by:omri_ori
ID: 2634924
thenks for the answer.
It still give me a small problem if my default e-mail client is outlook. the text from buffer is entered into recipient and not in the proper locations (subject,body..).

with netscape messenger it works fine

thenks again
ori
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Best Firemonkey component pack 1 105
Delphi: how to implement a User Shortcut mapper? 1 110
Connection between libmysql.dll and MySQL Versions 7 99
CheckListBox usage 3 59
A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question