Delphi-programa => email

14 отговора 410 прегледа
#1

Delphi-programa => email

Кой компонент от Delphi 5 да използвам, за да изпраща програмата е-маил към зададен адрес.

Отговор
в отговор на Учeниka #2

Re: Delphi-programa => email

най-лесно е с TNMSMTP компонента /търси го на FastNet таба/:

procedure TForm1.Button1Click(Sender: TObject);
begin
try
NMSMTP1.Host := 'smtp.host.com';
NMSMTP1.Port := 25;
NMSMTP1.Connect;
NMSMTP1.PostMessage.ToAddress.Add('user2@smtp.host.com');
NMSMTP1.PostMessage.FromAddress := 'user1@smtp.host.com';
NMSMTP1.PostMessage.Body.Assign(memo1.lines);
NMSMTP1.PostMessage.Subject := 'Test Subject';
NMSMTP1.SendMail;
NMSMTP1.Disconnect;
showmessage('Done');
except
on e:exception do showmessage(e.message);
end;
end;


иначе - сокети, SMTP-то е добро начало - лесен и ясен протокол...

прочее, ползвал съм TNMSMTP само в LAN, срещу IMS (EMWAC) сървър, ако някой има опит с него и реална поща - нека да каже :-)

--------------------------------------
Започва Път от моят праг...
Отговор
в отговор на Hateras #3

Re: Delphi-programa => email

Maliiiiiiiiiiiiiiiiii


ShellExecute( Application.Handle, nil, PChar('mailto:' + E-mail),
nil, nil, SW_SHOWNOACTIVATE );

namira se wyw ShallAPI

Важно е да знаеш каде се намира 'Any Key'
Отговор
в отговор на Пaпaraлa Йoprи #4

Re: Delphi-programa => email

Samo attachment nqma da moje taka, prosto shtoto <mailto:> ne poddarza attachments.
ama primerno s MAPI lesno se preskacha i taja trudnost


a puk toz FastNet neshto e zabegnal v Delphi 7... ama v 'Indy Clients' taba maj im pokrivat funkciite...


------
Щом не върви от първия път, значи има шанс

Редактирано от LongJohn на

Отговор
в отговор на Hateras #5

Re: Delphi-programa =&gt; email

И за мен това е най-коректното решение. Имам зад гърба си програма за автоматично разпращане на мейлове /със закачени файлове/ към голям брой потребители. Мейловете се получаваха на Linux, плюс на голям брой сървъри като Hotmail, Yahoo, Abv и прочее. Освен това в програмата се обработваха и върнатите /непристигнали например/ мейлове, както и имаше момент за изчисляване на скорости. Не че беше показателно ;-)
Имам и колега който е ползвал аналогичния компонент от колекцията Indy, даже имахме забавен спор кое се ползва по-лесно. Грубо казано, и двата са еднакви по възможности и удобство.

чети и дишай по-леко
Отговор
в отговор на Пaпaraлa Йoprи #6

Re: Delphi-programa =&gt; email

Това не изпраща мейл, а просто активира мейл клиента /ако има инсталиран такъв/ и попълва адреса за изпращане. Очевидния недостатък освен прикачените файлове е и че не се попълва тялото на съобщението, полетата CC, BCC и т.н.
Иначе е безспорно преимущество, че е на един ред. Само дето не върши работа. Представи си да напишеш програма която да изпрати формулярно писмо /например с еднакво съдържание, но с попълнено името на получателя/ до много клиенти. Разбира се, можеш да "попълниш" и полетата в Outlook чрез DDE, но тогава елегантното решение става твърде неелегантно, особенно ако клиента си е инсталирал и друг вид поща - например Pegasus или Mozila.

чети и дишай по-леко
Отговор
в отговор на Pechenia #7

Re: Delphi-programa =&gt; email

To dokolkoto si spomnqm edin ot gotowite proekti (File->New...) maj polzwashe MAPI - ne izglejdashe slojno ma pak e obwarzano s OutLook i zadawa razni tapi waprosi w stil "nqkoj se opitwa da prati e-mail ot washe ime..." ta taka.

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на Пaпaraлa Йoprи #8

RE

да, отваря ми еудора-та... и ме чака да си напиша писмото...

това е един от /многото/ начини да си пуснеш маил клиент /ако имаш инсталиран и регистриран и т.н./

обаче е далеко от това което се пита в маин поста

--------------------------------------
Започва Път от моят праг...
Отговор
в отговор на SDR #9

Re: Delphi-programa =&gt; email

Сетих се, какво исках да те питам - какво става ако няма инсталиран default мейл клиент и изобщо, как можеш да разбереш кой е default клиента в системата?

Mixy
Отговор
в отговор на Mixy #10

Re: Delphi-programa =&gt; email

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
{default} стринга е мейл клиента по подразбиране

Отговор
в отговор на wqtyr #11

Re: Delphi-programa =&gt; email

абе не е съвсем така...
в смисъл - на мен кода на Йорги ми пусна Eudora, а в HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail седи Hotmail...
точно този ключ го ползва IExplorer, но явно има още места от които да се вземе маил клиент...

тоя проблем и мен ме е тровил и още не съм му измислил решение :-(

--------------------------------------
Започва Път от моят праг...
Отговор
в отговор на Учeниka #12

different smtp

Misli 4e tuk e miastoto da zadam waprosa, koito me glojdi ot otdawa. Powe4eto ot nas izpolzwame internet karti za dostap do neta. Dokolkoto znam smtp servara zawisi ot ISP. T.e. pri wsiaka nowa karta tribwa da tarsim nowia smtp server (drug e waprosa 4e ne wingai ima takaw). Waprosat: niama li ne6to uniwersalno, s koeto lesno mojem da si pi6em e-mailite. Ne slu4aino tarsih nawremeto tsmtprealyserver 6to dosta biah 4el za nego. Tuk izklu4wam glupostta za prawene na spam i drugi 6turotii - prosto e glupawo. Wseki programist zapo4wa s towa... dokato ne uzree...
Pechenite da pi6at ;)

Do you feel the flow in your veins > 1010110010000111101010101010101010101

Отговор
в отговор на Hateras #13

Re: Delphi-programa =&gt; email

spored SMDN:

Determining Which Client Interfaces are Installed
The information that is added to the [Mail] section of the WIN.INI file or the system registry specifies the types of MAPI client application programming interfaces (APIs) that are installed on a computer. These types include Simple MAPI, MAPI, the CDO Library, and CMC. If CMC is installed, another entry exists to identify the name of the CMC DLL that should be loaded for your system.

The entries that identify client API installations are as follows:

[Mail]
MAPI=0 or 1
MAPIX=0 or 1
OLEMessaging=0 or 1
CMC=0 or 1

Each entry that represents an installed MAPI client API is set to 1. If a particular client API is not installed, its entry either is missing from the WIN.INI file or the registry or is set to 0. The MAPI entry identifies a Simple MAPI installation, the MAPIX entry identifies the more complete MAPI installation with all of the object oriented interfaces and its related functions and macros, and the CDO Library and CMC entries indicate the client API of the same name.

Computers with CMC installations can also set the CMCDLLNAME or CMCDLLNAME32 entries to specify the filename of the CMC DLL. CMCDLLNAME identifies the 16-bit version; CMCDLLNAME32 identifies the 32-bit version. If these entries are omitted and a CMC installation exists, MAPI searches for a file named CMC.DLL regardless of whether the installation is for a 16-bit or 32-bit platform. The format of the CMCDLLNAME entries is as follows:

CMCDLLNAME=full path to file
CMCDLLNAME32=full path to file

All of the types of MAPI installations reside in a standard DLL. Simple MAPI, CMC, and MAPI reside in MAPI.DLL for 16-bit platforms and MAPI32.DLL for 32-bit platforms. The CDO Library resides in CDO.DLL, and is only for 32-bit platforms. The CDO Rendering Library resides in CDOHTML.DLL for 32-bit platforms.

Both 16-bit and 32-bit Simple MAPI client applications can run in an environment that supports both platforms (for example, the Windows 95 and Windows NT operating systems) if there is a Simple MAPI installation available for at least one of the platforms. Client applications do not need the name of the server executable file; information contained in the OLE registry automatically binds the appropriate file.

Microsoft supplies an import library for MAPI. Client applications can load the MAPI DLL statically using the import library or load it dynamically using the Windows API functions LoadLibrary and GetProcAddress.

There is no import library for either the Simple MAPI DLLs or the CMC DLLs. These DLLs must always be loaded dynamically by calling the Windows functions LoadLibrary and GetProcAddress. Applications that use these functions to load a CMC, Simple MAPI, or MAPI DLL should always check either the appropriate CMC, MAPI, or MAPIX entry to determine if the API is installed before attempting to load the DLL.

The specific version of MAPI is indicated by another string value, which is a four-part number as follows:

MAPIXVER=w.x.y.z

© 2000-2001 Microsoft Corporation. All rights reserved.

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на SDR #14

Re: Delphi-programa =&gt; email

Kato se izwinqwam za predniq prebarzan post:

HOWTO: Retrieve the PR_PROVIDER_DISPLAY Property

Q181732


--------------------------------------------------------------------------------
The information in this article applies to:

Extended Messaging Application Programming Interface (MAPI), version 1.0

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


SUMMARY
This article describes how to determine the message store provider name.



MORE INFORMATION
The following code sample illustrates how to retrieve the PR_PROVIDER_DISPLAY property of a given message store. This can be useful in determining the type of information store you are working with.

Here is the code:
...... i t.n. .....

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на MetAlex #15

Re: different smtp

Въпроса е твърде обширен, но в сгъстен вид решението е следното:
1) Регистрираш мейл адрес в сървър с SMTP/POP3. Отделен вариант е да пуснеш собствен сървър, но това е друга тема
2) Получаването и изпращането на email става само през този SMTP/POP3 сървър, т.е. с неговите IP, лог и парола. Тогава си независим от начина по който се свързваш с Internet.
Практически процеса е същия, по който човек ръчно ползва мейл клиент - например Outlook Express. Тогава пощата му седи на един или няколко сървъра, а той я манипулира откъдето си иска.
Важно е да се отбележи, че SMTP и POP3 не са единствените протоколи за обмен на съобщения, но просто компонентите за тях са добре работещи и проверени, освен това са и широко разпространени.
Относно узряването - няма мищо лошо в това човек да знае как се генерира спам и въобще да познава тъмната страна - въпроса е как я използва. Един нож може да реже хляб, но може и да убива.

чети и дишай по-леко
Отговор