View Full Version : ارسال ایمیل از طریق دلفی 7
دنیای دلفی
شنبه 27 فروردین 1384, 14:26 عصر
با سلام خدمت دوستان
من یک برنامه نوشته ام که مربوط به قفل نرم افزار می باشد می خواهم کد منحصر بفردی را که برنامه برای سیستم تولید می کند را پس از قرار دادن دریک فایل با فشار دادن یک کلید از طریق اینترنت به یک آدرس پستی Mail کنم .
یک برنامه هم با سورس گیر آورده ام ولی وقتی می خواهد ارسال کند Host مربوطه را پیدا نمی کند . چگونه می توانم این کار را انجام دهم .
اگر راهنمایی کنید لطف نموده اید .
:موفق:
NOROOZY
شنبه 27 فروردین 1384, 15:18 عصر
میتوانید از دموهای خود دلفی کمک بگیرید :
..\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:20 عصر
میتوانید از دموهای خود دلفی کمک بگیرید :
..\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:27 عصر
میتوانید از دموهای خود دلفی کمک بگیرید :
..\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, 15:35 عصر
جناب Delphi-Clinic دست شما درد نکند و خسته باشید امکان دارد این مجموعه کدها را به صورت فایل دلفی Upload کنید . لطف می کنید .
:موفق:
دنیای دلفی
شنبه 27 فروردین 1384, 20:11 عصر
متاسفانه این خطا را می دهد
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:11 عصر
1- باید از host استفاده کنی که pop3 و smtp را پشتیبانی کند
((ایمل های رایگان یاهو smtp را پشتیبانی نمیکنند ))
از gmail مثلا استفاده کن :wink:
2- به سایت http://www.delphi3000.com/ هم متوانی یک سر بزنی
در این سایت در مورد ارسال ایمیل با indy نیز مثال دارد و شرح داده
Delphi Skyline
شنبه 27 فروردین 1384, 21:37 عصر
************* ثانیا من fastnet و Indy رو می گم
منبعد مزخرف بنویسی درجا می فرستم سطل آشغال. :)
دیگه اصلا بهت تذکر نمی دم.
دلفی کلینیک
دنیای دلفی
شنبه 27 فروردین 1384, 22:22 عصر
اگر ممکن است یک مثال بزنید که از یک Host استفاده کنم دوست عزیز شما که گفته اید از Gmail چگونه از Gmail استفاده کنم من می نویسم مثلا Mail.gmail.com یا gmail.google.com ولی باز هم جواب نمی دهد .
لطف کنید راهنمایی کنید .
:strange: :flower:
دنیای دلفی
شنبه 27 فروردین 1384, 22:24 عصر
حدود یک ساعت هم در http://www.delphi3000.com جستجو کردم ولی نتیجه در بر نداشت :گیج:
علی کشاورز
یک شنبه 28 فروردین 1384, 03:48 صبح
ممکن است یک مثال بزنید که از یک 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, 07:52 صبح
درود
تنظیمات GMail به این صورت هست
دنیای دلفی
یک شنبه 28 فروردین 1384, 08:09 صبح
تنظیمات GMail به این صورت هست
دست شما درد نکند
این تنظیمات را باید در کامپونننتهای Indy انجام دهیم یا جای دیگر اگر امکان دارد بیشتر توضیح دهید .
:موفق:
m-khorsandi
یک شنبه 28 فروردین 1384, 14:42 عصر
این تنظیمات رو برای هر نرم افزار یا Component ایی میتونی انجام بدی.
در مورد GMail این رو هم بگم که من با دلفی 5 و Component ایی به نام Fastnet نتونستم از
GMail نامه هام رو بگیرم ولی توی ارسال مشکلی نداشت.
دنیای دلفی
یک شنبه 28 فروردین 1384, 16:46 عصر
من بررسی کردم ولی جواب نمی ده نمی دونم باید چیکار کنم .
لطفا راهنمایی کنید :strange:
دنیای دلفی
یک شنبه 28 فروردین 1384, 21:57 عصر
نمی دونم چرا این خطا را می دهد
houshmand
سه شنبه 30 فروردین 1384, 23:50 عصر
ویرایش شد.
دلفی کلینیک
search google :
delphi indy send mail
این هم یک مثال
http://delphi.about.com/od/internetintranet/l/aa020304a.htm
فقط تنها نکته ای که هست اینه که gmail هم برای فرستادن email از شما رمز را می خواهد
که برای کاری که شما می خواهید انجام بدهید زیاد مناسب نیست که رمز داخل فایل exe باشه (باید دنبال email بگردی که Encrypted Connections نباشه که این روزها با توجه به سوء استفاده از انها -- فرستادن نامه قلابی -- کم پیدا میشه )
milani
جمعه 02 اردیبهشت 1384, 15:30 عصر
سلام
اگه ممکنه در مورداینکه با یاهو مسنجر ارتباط برقرار کنم منو را هنمایی کنید
محمد میرمصطفی
جمعه 09 اردیبهشت 1384, 18:33 عصر
یه نگاهی هم به http://www.barnamenevis.org/forum/viewtopic.php?p=127870#127870 بینازید plz. ممنون
دنیای دلفی
شنبه 10 اردیبهشت 1384, 11:10 صبح
ّبرای ارسال Email بوسیله SMTP در Indy باید SSL و authentication فعال شوند . (با استفاده از Gmail)
چگونه باید این دو خاصیت را فعال کنم .
ممنون می شوم راهنمایی کنید .
:flower:
vBulletin® v4.0.8, Copyright ©2000-1391, Jelsoft Enterprises Ltd.