View Full Version : مشكل در نمايش عنوان ( Subject ) ايميل ارسالي
SReza1
شنبه 21 فروردین 1389, 11:17 صبح
من با كد زير يك email زدم . ارسال email مشكلي ندارد ولي مشكلي كه هست اينه كه email subject با حروف عجيب غريب ظاهر ميشه (با وجود اينكه موقع ارسال به utf تبديل ميكنم) اينم كد برنامه :
FSMTP := TIdSMTP.Create(DM1);
FSMTP.Username := FrSnd;
FSMTP.Password := Password;
FSMTP.Host := SMTPMailServer;
FSMTP.Port := SMTPPort;
FSMTP.AuthenticationType := atLogin;
if not FSMTP.Connected then
FSMTP.Connect;
IdMsgSend := TIdMessage.Create(DM1);
IdMsgSend.MessageParts.Clear;
TIdAttachment.Create(IdMsgSend.MessageParts , 'C:\atch1.bmp');
with IdMsgSend do
begin
Body.Text := AnsiToUtf8(FBody);
From.Text := FrSnd;
Recipients.EMailAddresses := ToRec;
Subject := AnsiToUtf8(FSubject);
Priority := TIdMessagePriority(mpHighest);
end;
FSMTP.Send(IdMsgSend);
FSMTP.Disconnect;
vcldeveloper
شنبه 21 فروردین 1389, 12:40 عصر
برای Attachment مربوطه MIME Type را مشخص نکردید. برای پیام هم MIME Type و Encoding را مشخص نکردید.
در ضمن، در اینگونه سوالات حتما نسخه دلفی و نسخه Indy که استفاده کردید را درج کنید.
SReza1
شنبه 21 فروردین 1389, 12:51 عصر
البته مشكل پيوستها حل شد. خندهداره! ولي با عوض كردن محل SMPT.CREATE و بردنش به بعد از ATTACHMENT حل شد! ولي همچنان مشكل SUBJECT با حروف عجيب و غريب هست. (SUBJECT فارسي هست). نسخه دلفي 7 است.
vcldeveloper
شنبه 21 فروردین 1389, 19:48 عصر
نسخه دلفي 7 است.
گزینه ایی برای تعیین Encoding مربوط به Subject وجود نداره، از طرف دیگه دلفی 7 هم رشته مربوطه را به صورت ANSI ارسال میکنه. احتمالا علت خراب شدن متن فارسی در Subject همین باشه، یعنی Mail Client انتظار یک Encoding دیگه ایی رو داره. در ANSI وقتی فارسی تایپ می کنید، نمایش درست متن فارسی وابسته به Code Page فعال سیستم هست، اگر Mail Client مربوطه انتظار چیزی غیر از ANSI رو داشته باشه، یا Code Page فعال سیستم مقصد چیزی غیر از فارسی باشه، متن درست نمایش داده نمیشه.
اطلاعی ندارم که آیا راهی برای مشخص کردن Encoding عنوان نامه وجود داره یا نه، باید برای این منظور به RFC مربوط به SMTP مراجعه کنید.
البته بهتره که قید دلفی 7 رو بزنید و از دلفی 2009 یا 2010 استفاده کنید که از یونیکد کامل پشتیبانی می کنند.
برای Attachment هم می تونید از راهنمای Indy در لینک زیر استفاده کنید:
http://www.projectindy.org/sockets/Blogs/RLebeau/2005_08_17_A.en.aspx
SReza1
چهارشنبه 25 فروردین 1389, 12:02 عصر
گفتم كه مشكل پيوست حل شده (با جابجايي كد) . خوب حالا نسخه جديد indy (نسخهاي كه اين مشكل رو حل كنه) رو از كجا گير بيارم! با توجه به اينكه نميتونم دلفي رو عوض كنم.
vcldeveloper
چهارشنبه 25 فروردین 1389, 18:27 عصر
خوب حالا نسخه جديد indy (نسخهاي كه اين مشكل رو حل كنه) رو از كجا گير بيارم! با توجه به اينكه نميتونم دلفي رو عوض كنم.
http://www.indyproject.org/sockets/Docs/Indy10Installation.DE.aspx
SReza1
چهارشنبه 08 اردیبهشت 1389, 12:40 عصر
ممنون آقاي كشاورز. من مثالهاشو dl كردم. زياد سعي درنياوردم. يك مثال ساده براي ارسال email به همراه attachmentt كردن يك فايل داري؟
vcldeveloper
چهارشنبه 08 اردیبهشت 1389, 13:49 عصر
يك مثال ساده براي ارسال email به همراه attachmentt كردن يك فايل داري؟
http://delphi.about.com/od/indy/a/email-send-indy.htm
SReza1
پنج شنبه 09 اردیبهشت 1389, 10:48 صبح
من indy10 رو نصب كردم.(روي delphi 7 با remove كردن تمام indyهاي ديگر) از همون sample كه لينكش بالاست استفاده كردم. ولي همچنان subject با حروف عجيب و غريب است. property خاصي داره براي اينكار؟
vcldeveloper
پنج شنبه 09 اردیبهشت 1389, 17:13 عصر
من indy10 رو نصب كردم.(روي delphi 7 با remove كردن تمام indyهاي ديگر) از همون sample كه لينكش بالاست استفاده كردم. ولي همچنان subject با حروف عجيب و غريب است.
از طرف دیگه دلفی 7 هم رشته مربوطه را به صورت ANSI ارسال میکنه. احتمالا علت خراب شدن متن فارسی در Subject همین باشه
احتمالا مشکلتون همین دلفی 7 باشه. در هر حال، شما یک پروژه نمونه که نوشتید و باهاش مشکل دارید، رو اینجا بزارید، و Mail Clientایی که برای چک کردن ایمیل ازش استفاده می کنید، رو هم ذکر کنید؛ من با دلفی 2010 چک می کنم، ببینم چطور میشه.
mrm0101
یک شنبه 26 اردیبهشت 1389, 19:50 عصر
سلام
اين دستور را به كد برنامه اضافه كنيد
IdMessage1.CharSet:= 'utf-8';
البته من اين مشكل رادردلفي 2010 داشتم با اين كد حل شد دلفي 7 را تست نكردم
SReza1
دوشنبه 09 اسفند 1389, 12:27 عصر
مشكلم حل نشد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.