PDA

View Full Version : نحوه کار با Chilkat برای دریافت ایمیل



negar.rafie
دوشنبه 24 مهر 1391, 16:22 عصر
سلام
دوستان این دیگه اخرین امید من است
این کامپوننت نمونه کد داره ولی کار نمیکنه
میشه راهنمایی کنید که چطوری با استفاده از این کامپوننت ایمیل دریافت کنم؟

negar.rafie
دوشنبه 24 مهر 1391, 16:38 عصر
دوستان من از تیکه کد زیر استفاده می کنم ولی جواب نمیده مشکلش کجاست

Chilkat.MailMan mailman = new Chilkat.MailMan();

// Any string argument automatically begins the 30-day trial.
bool success;
success = mailman.UnlockComponent("30-day trial");
if (success != true)
{
MessageBox.Show("Component unlock failed");
return;
}

// Set the GMail account POP3 properties.
mailman.MailHost = "pop.gmail.com";
mailman.PopUsername = "username";
mailman.PopPassword = "pass";
mailman.PopSsl = true;
mailman.MailPort = 587;

Chilkat.EmailBundle bundle = null;
// Read mail headers and one line of the body.
// To get the full emails, call CopyMail instead (no arguments)
bundle = mailman.GetAllHeaders(1);

if (bundle == null)
{
MessageBox.Show(mailman.LastErrorText);
return;
}

int i;
Chilkat.Email email = null;
for (i = 0; i <= bundle.MessageCount - 1; i++)
{
email = bundle.GetEmail(i);

// Display the From email address and the subject.
textBox1.Text += email.From + "\r\n";
textBox1.Text += email.Subject + "\r\n" + "\r\n";

}

negar.rafie
دوشنبه 24 مهر 1391, 19:26 عصر
چرا هیچ کس جواب نمیده
فقط هی پیام بدید از ما ایراد بگیرید
یکی میگه عکس اواترت مورد داره
یکی پیام میده نمدونم کجا اون تیکه کدا گذاشتی میتونم ازش استفاده کنم
و یه سری چیزای دیگه

Hajivandian
دوشنبه 24 مهر 1391, 19:54 عصر
سلام،
من با کامپوننت Chilkat کار نکردم ولی OpenPop.NET (http://sourceforge.net/projects/hpop/) رو تست کردم، بدون هیچ مشکلی کار میکنه.

uniqueboy_ara
دوشنبه 24 مهر 1391, 20:05 عصر
خانوم رفیعی، شما چرا انقد بی اعصابی آخه ؟
ما اگه بلد باشیم، شک نکنید که جواب میدیم!
حتما جواب سوال شمارو نمیدونستیم که تا الان بی جواب موندید دیگه

negar.rafie
دوشنبه 24 مهر 1391, 20:37 عصر
سلام،
من با کامپوننت Chilkat کار نکردم ولی OpenPop.NET (http://sourceforge.net/projects/hpop/) رو تست کردم، بدون هیچ مشکلی کار میکنه.
خیلی ممنون
میشه این کامپوننت را با یه نمونه از کدهاش بزارید؟

negar.rafie
دوشنبه 24 مهر 1391, 20:46 عصر
منظورم از گذاشتن کامپوننت اینه که ایا رایگان است یا با رجیستر بشه؟

Hajivandian
دوشنبه 24 مهر 1391, 20:49 عصر
کامپوننتش رایگانه و کدباز، نمونه کد هم خودش گذاشته.

negar.rafie
دوشنبه 24 مهر 1391, 20:57 عصر
من کد زیر را امتحان کردم تو قسمت حلقه ارور میده
public static List<Message> FetchAllMessages(string hostname, int port, bool useSsl, string username, string password)
{
// The client disconnects from the server when being disposed
using (Pop3Client client = new Pop3Client())
{
// Connect to the server
client.Connect(hostname, port, useSsl);

// Authenticate ourselves towards the server
client.Authenticate(username, password);

// Get the number of messages in the inbox
int messageCount = client.GetMessageCount();

// We want to download all messages
List<Message> allMessages = new List<Message>(messageCount);

// Messages are numbered in the interval: [1, messageCount]
// Ergo: message numbers are 1-based.
// Most servers give the latest message the highest number
for (int i = messageCount; i > 0; i--)
{
allMessages.Add(client.GetMessage(i));
}

// Now return the fetched messages
return allMessages;
}
}

PetekDincos
دوشنبه 24 مهر 1391, 21:03 عصر
با سلام
من در مورد دریافت ایمیل هیچ اطلاعی ندارم می خواستم بدونم POP Server Address , User name,password ,Port رو از کجا وارد کنم . با تشکر

negar.rafie
دوشنبه 24 مهر 1391, 22:04 عصر
من هر کاری کردم نشد
سوال شما مثلا برای جیمیل
username:email
password:password
Port :587
POP Server Address=pop.gmail.com

uniqueboy_ara
دوشنبه 24 مهر 1391, 22:05 عصر
اگه منظورتون از "از کجا وارد کنم" اینه که نمیدونید پورت و سرور رو چی بزارید، میتونید از این استفاده کنید:

Gmail:
Posteingangsserver: POP3: pop.googlemail.com (SSL; Port 995), IMAP: imap.googlemail.com (SSL; Port 993)

Hotmail:
Posteingangsserver:pop3.live.com (SSL; Port 995)

PetekDincos
دوشنبه 24 مهر 1391, 23:54 عصر
با سلام
برای yahoo و سرویس های ایمیل دیگه از کجا می شه بدست آورد . و در ضمن آیا چنین کامژوننتی برای ارسال نیز وجود داره ؟ . با تشکر

uniqueboy_ara
سه شنبه 25 مهر 1391, 01:34 صبح
یاهو از pop3 پشتیبانی نمیکنه ولی لیست همه میل سرویس ها رو اینجا میتونید ببینید
خدمت شما: http://www.patshaping.de/hilfen_ta/pop3_smtp.htm
-------------
واسه ارسال که مشکلی نیست، توسط توابع net. به راحتی میشه ایمیل ارسال کرد

Hajivandian
سه شنبه 25 مهر 1391, 07:35 صبح
وقتی پیغام خطا میده، باید متن پیام خطا رو لا اقل بزارید که بشه راهنمایی کرد!
من از این کد استفاده کردم بدون هیچ مشکلی کار کرد:
private void button1_Click(object sender, EventArgs e)
{
listBox1.DataSource = FetchAllMessages("pop.gmail.com", 995, true, "hajivandian@gmail.com", "******");
}

public static List<OpenPop.Mime.Message> FetchAllMessages(string hostname, int port, bool useSsl, string username, string password)
{
// The client disconnects from the server when being disposed
using (OpenPop.Pop3.Pop3Client client = new OpenPop.Pop3.Pop3Client())
{
// Connect to the server
client.Connect(hostname, port, useSsl);

// Authenticate ourselves towards the server
client.Authenticate(username, password);

// Get the number of messages in the inbox
int messageCount = client.GetMessageCount();

// We want to download all messages
List<OpenPop.Mime.Message> allMessages = new List<OpenPop.Mime.Message>(messageCount);

// Messages are numbered in the interval: [1, messageCount]
// Ergo: message numbers are 1-based.
// Most servers give the latest message the highest number
for (int i = messageCount; i > 0; i--)
{
allMessages.Add(client.GetMessage(i));
}

// Now return the fetched messages
return allMessages;
}
}

negar.rafie
سه شنبه 25 مهر 1391, 09:08 صبح
خوب منم همین کد را استفاده می کنم
با پورت 995 که هیچ اتفاقی نمی افته
با پورت 578 خطا میده

94043

Hajivandian
سه شنبه 25 مهر 1391, 16:19 عصر
برای گوگل باید حتما از پورت 995 استفاده کنید و مقدار useSSL رو true قرار بدید.
توی تستی که من انجام دادم فقط ایمیل هایی رو که نخونده بودم برگردوند.

naghshineh m&h
چهارشنبه 22 آذر 1391, 19:42 عصر
خیلی جالبه من هم همین مشکلات را دارم ولی هیچ منبع دقیق و درستی تا به این لحظه ندیدم دوستان اگر کسی می تونه خواهشمندم کمک کنید