PDA

View Full Version : ارسال ایمیل از طریق دلفی 7



دنیای دلفی
شنبه 27 فروردین 1384, 14:56 عصر
با سلام خدمت دوستان

من یک برنامه نوشته ام که مربوط به قفل نرم افزار می باشد می خواهم کد منحصر بفردی را که برنامه برای سیستم تولید می کند را پس از قرار دادن دریک فایل با فشار دادن یک کلید از طریق اینترنت به یک آدرس پستی Mail کنم .

یک برنامه هم با سورس گیر آورده ام ولی وقتی می خواهد ارسال کند Host مربوطه را پیدا نمی کند . چگونه می توانم این کار را انجام دهم .


اگر راهنمایی کنید لطف نموده اید .
:موفق:

NOROOZY
شنبه 27 فروردین 1384, 15:48 عصر
میتوانید از دموهای خود دلفی کمک بگیرید :
..\Demos\FastNet\Pop3\pop3demo.dpr
..\Demos\FastNet\Smtp\smtpdemo.dpr
مسئله ای را که میبایست رعایت کنید مقدار دهی مقادیر خواسته شده در برنامه میباشد:
HOST : نام سایت یا هاستی که MailServer میباشد، مثلا 172.18.0.100
PORT : شماره پورتی که بعنوان POP3 استفاده میشود. ( معمولا 110 )
User ID : نام کاربری که در آن سایت دارای اکانت میباشد.
Password : کلمه رمز کاربر.

Delphi Skyline
شنبه 27 فروردین 1384, 15:50 عصر
میتوانید از دموهای خود دلفی کمک بگیرید :
..\Demos\FastNet\Pop3\pop3demo.dpr
..\Demos\FastNet\Smtp\smtpdemo.dpr
مسئله ای را که میبایست رعایت کنید مقدار دهی مقادیر خواسته شده در برنامه میباشد:
HOST : نام سایت یا هاستی که MailServer میباشد، مثلا 172.18.0.100
PORT : شماره پورتی که بعنوان POP3 استفاده میشود. ( معمولا 110 )
User ID : نام کاربری که در آن سایت دارای اکانت میباشد.
Password : کلمه رمز کاربر.


آقای نوروزی شرمنده . اینایی که شما گفتید ماله دلفی 5 است نه ماله دلفی 7 . در این را بطه آقای گلادیاتور بحث کردند

Delphi-Clinic
شنبه 27 فروردین 1384, 15:57 عصر
میتوانید از دموهای خود دلفی کمک بگیرید :
..\Demos\FastNet\Pop3\pop3demo.dpr
..\Demos\FastNet\Smtp\smtpdemo.dpr
مسئله ای را که میبایست رعایت کنید مقدار دهی مقادیر خواسته شده در برنامه میباشد:
HOST : نام سایت یا هاستی که MailServer میباشد، مثلا 172.18.0.100
PORT : شماره پورتی که بعنوان POP3 استفاده میشود. ( معمولا 110 )
User ID : نام کاربری که در آن سایت دارای اکانت میباشد.
Password : کلمه رمز کاربر.


آقای نوروزی شرمنده . اینایی که شما گفتید ماله دلفی 5 است نه ماله دلفی 7 . در این را بطه آقای گلادیاتور بحث کردند

به نظرم هنوز زود باشه راجع به مطالبی که در انها اشراف نداری صحبت کنی.
روش کار با پروتکل SMTP در دلفی 7 یا 6 یا 5 یکی است.



unit MainUnit;

interface

uses
inifiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient,
IdSMTP, ComCtrls, StdCtrls, Buttons, ExtCtrls, IdBaseComponent, IdMessage;

type
TMailerForm = class(TForm)
MailMessage: TIdMessage;
pnlTop: TPanel;
pnlBottom: TPanel;
ledHost: TLabeledEdit;
Body: TMemo;
ledAttachment: TLabeledEdit;
btnAttachment: TBitBtn;
SMTP: TIdSMTP;
ledFrom: TLabeledEdit;
ledTo: TLabeledEdit;
ledCC: TLabeledEdit;
ledSubject: TLabeledEdit;
btnSendMail: TBitBtn;
StatusMemo: TMemo;
AttachmentDialog: TOpenDialog;
procedure btnSendMailClick(Sender: TObject);
procedure SMTPStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
procedure btnAttachmentClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
procedure GetSettings;
procedure SaveSettings;
public
{ Public declarations }
end;

var
MailerForm: TMailerForm;

implementation

{$R *.dfm}

procedure TMailerForm.btnSendMailClick(Sender: TObject);
begin
StatusMemo.Clear;

//setup SMTP
SMTP.Host := ledHost.Text;
SMTP.Port := 25;

//setup mail message
MailMessage.From.Address := ledFrom.Text;
MailMessage.Recipients.EMailAddresses := ledTo.Text + ',' + ledCC.Text;

MailMessage.Subject := ledSubject.Text;
MailMessage.Body.Text := Body.Text;

if FileExists(ledAttachment.Text) then
TIdAttachment.Create(MailMessage.MessageParts, ledAttachment.Text);

//send mail
try
try
SMTP.Connect(1000);
SMTP.Send(MailMessage);
except on E:Exception do
StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;

end; (* btnSendMail Click *)

procedure TMailerForm.SMTPStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
StatusMemo.Lines.Insert(0,'Status: ' + AStatusText);
end; (* SMTP Status *)

procedure TMailerForm.btnAttachmentClick(Sender: TObject);
begin
if AttachmentDialog.Execute then
ledAttachment.Text := AttachmentDialog.FileName;
end;

procedure TMailerForm.FormCreate(Sender: TObject);
begin
GetSettings;
end;

procedure TMailerForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SaveSettings;
end;

procedure TMailerForm.GetSettings;
var
ini : TIniFile;
begin
Ini := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
try
ledHost.Text := ini.ReadString('SMTP','Host','');

ledFrom.Text := ini.ReadString('MAIL','From','');
ledTo.Text := ini.ReadString('MAIL','To','');
ledCC.Text := ini.ReadString('MAIL','CC','');
finally
ini.Free;
end;
end; (* GetSettings *)

procedure TMailerForm.SaveSettings;
var
ini : TIniFile;
begin
Ini := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
try
ini.WriteString('SMTP','Host',ledHost.Text);

ini.WriteString('MAIL','From',ledFrom.Text);
ini.WriteString('MAIL','To',ledTo.Text);
ini.WriteString('MAIL','CC',ledCC.Text);
finally
ini.Free;
end;
end; (* SaveSettings *)

end.

دنیای دلفی
شنبه 27 فروردین 1384, 16:05 عصر
جناب Delphi-Clinic دست شما درد نکند و خسته باشید امکان دارد این مجموعه کدها را به صورت فایل دلفی Upload کنید . لطف می کنید .


:موفق:

دنیای دلفی
شنبه 27 فروردین 1384, 20:41 عصر
متاسفانه این خطا را می دهد


ERROR: Socket Error # 10053
Software caused connection abort.
Status: Connecting to 66.218.75.184.
Status: Resolving hostname mail.yahoo.com.

این همان برنامه ای ایست که خودم داشتم ولی Host را پیدا نمی کند .



لطف کنید راهنمایی کنید .

:strange: :sorry: :موفق:

houshmand
شنبه 27 فروردین 1384, 21:41 عصر
1- باید از host استفاده کنی که pop3 و smtp را پشتیبانی کند
((ایمل های رایگان یاهو smtp را پشتیبانی نمیکنند ))
از gmail مثلا استفاده کن :wink:
2- به سایت http://www.delphi3000.com/ هم متوانی یک سر بزنی
در این سایت در مورد ارسال ایمیل با indy نیز مثال دارد و شرح داده

Delphi Skyline
شنبه 27 فروردین 1384, 22:07 عصر
************* ثانیا من fastnet و Indy رو می گم

منبعد مزخرف بنویسی درجا می فرستم سطل آشغال. :)

دیگه اصلا بهت تذکر نمی دم.

دلفی کلینیک

دنیای دلفی
شنبه 27 فروردین 1384, 22:52 عصر
اگر ممکن است یک مثال بزنید که از یک Host استفاده کنم دوست عزیز شما که گفته اید از Gmail چگونه از Gmail استفاده کنم من می نویسم مثلا Mail.gmail.com یا gmail.google.com ولی باز هم جواب نمی دهد .

لطف کنید راهنمایی کنید .

:strange: :flower:

دنیای دلفی
شنبه 27 فروردین 1384, 22:54 عصر
حدود یک ساعت هم در http://www.delphi3000.com جستجو کردم ولی نتیجه در بر نداشت :گیج:

vcldeveloper
یک شنبه 28 فروردین 1384, 04:18 صبح
ممکن است یک مثال بزنید که از یک Host استفاده کنم دوست عزیز شما که گفته اید از Gmail چگونه از Gmail استفاده کنم من می نویسم مثلا Mail.gmail.com یا gmail.google.com ولی باز هم جواب نمی دهد .
pop.gmail.com
smtp.gmail.com
البته ممکنه حتی با وجود آدرسهای بالا هم در GMail مشکل داشته باشید، چون از Encrypted Connections استفاده می کنه.
علاوه بر مثالی که آقای Delphi-Clinic اراپه کردند، Gladiator هم در تاپیک "همه چیز درباره Indy" در این زمینه و مساپل مرتبط با اون بحث کرده.

m-khorsandi
یک شنبه 28 فروردین 1384, 08:22 صبح
درود

تنظیمات GMail به این صورت هست

دنیای دلفی
یک شنبه 28 فروردین 1384, 08:39 صبح
تنظیمات GMail به این صورت هست

دست شما درد نکند

این تنظیمات را باید در کامپونننتهای Indy انجام دهیم یا جای دیگر اگر امکان دارد بیشتر توضیح دهید .
:موفق:

m-khorsandi
یک شنبه 28 فروردین 1384, 15:12 عصر
این تنظیمات رو برای هر نرم افزار یا Component ایی میتونی انجام بدی.
در مورد GMail این رو هم بگم که من با دلفی 5 و Component ایی به نام Fastnet نتونستم از
GMail نامه هام رو بگیرم ولی توی ارسال مشکلی نداشت.

دنیای دلفی
یک شنبه 28 فروردین 1384, 17:16 عصر
من بررسی کردم ولی جواب نمی ده نمی دونم باید چیکار کنم .

لطفا راهنمایی کنید :strange:

دنیای دلفی
یک شنبه 28 فروردین 1384, 22:27 عصر
نمی دونم چرا این خطا را می دهد

houshmand
چهارشنبه 31 فروردین 1384, 00:20 صبح
ویرایش شد.
دلفی کلینیک

search google :
delphi indy send mail
این هم یک مثال
http://delphi.about.com/od/internetintranet/l/aa020304a.htm
فقط تنها نکته ای که هست اینه که gmail هم برای فرستادن email از شما رمز را می خواهد
که برای کاری که شما می خواهید انجام بدهید زیاد مناسب نیست که رمز داخل فایل exe باشه (باید دنبال email بگردی که Encrypted Connections نباشه که این روزها با توجه به سوء استفاده از انها -- فرستادن نامه قلابی -- کم پیدا میشه )

milani
جمعه 02 اردیبهشت 1384, 16:00 عصر
سلام
اگه ممکنه در مورداینکه با یاهو مسنجر ارتباط برقرار کنم منو را هنمایی کنید

محمد میرمصطفی
جمعه 09 اردیبهشت 1384, 19:03 عصر
یه نگاهی هم به http://www.barnamenevis.org/forum/viewtopic.php?p=127870#127870 بینازید plz. ممنون

دنیای دلفی
شنبه 10 اردیبهشت 1384, 11:40 صبح
ّبرای ارسال Email بوسیله SMTP در Indy باید SSL و authentication فعال شوند . (با استفاده از Gmail)
چگونه باید این دو خاصیت را فعال کنم .

ممنون می شوم راهنمایی کنید .

:flower:

mtfa65
شنبه 21 دی 1392, 19:02 عصر
سلام دوستان.
من می خوام ایمیل ارسال کنم.
IdMsgSend
IdSMTP
(TIdSSLOptions)
من از این سه تا کامپوننت استفاده کردم و IOhandler IDsmtp را به TIdSSLOptions نسبت دادم
host:=smtp.gmail.com
port:=465
وارد میکنم اما موقع ارسال ایمیل پیغام زیر رو می ده. البته از دو تا dll به نام های libeay32 و ssleay32 نیز استفاده کردم. البته این دو تا dll رو از اینترنت دانلود کردم. و همچنین سورس برنامه رو دانلود کردم اما اونی که از اینترنت دانلود کردم باهاش ایمیل ارسال می شه و هیچ مشکلی نداره اما وقتی منم عین اون رو شبیه سازی می کنم این پیغام رو میده. لطفا اگر دلیلش رو میدونید بفرمایید. یا اگر روش دیگری بغیر از این می دونید بفرمایید.
با تشکر

115218

mtfa65
چهارشنبه 25 دی 1392, 20:57 عصر
سلام دوستان
من وقتی با دلفی 7 ایمیل ارسال می کنم ارسال می شه اما گه گاهی پیغام ارور میده. مثلا error connecting with ssl v رو میده یا مثل Time out من می خوام بجای این ارور خود دلفی پیغام من نمایش داده بشه.
مثل : ایمیل ارسال نشد مجددا امتحان کنید.
مرسی

HAMIDyekta
دوشنبه 19 خرداد 1393, 12:24 عصر
شما باید از مدیریت های خطا در دلفی اسفاده کنید یه سرچی بزن تو گوگل مطالب زیادی پیدا می کنید در خصوص کنترل خطا ها در دلفی

h_mohamadi
دوشنبه 20 بهمن 1393, 09:55 صبح
من هم همین مشکل را دارم