PDA

View Full Version : سوال: علت خطا در ارسال Gmail



دلتنگ اسمان
پنج شنبه 20 شهریور 1393, 12:04 عصر
سلام
این کد موقع ارسال ایمیل با آدرس جمیل خطا میده چرا؟ توی یاهو مشکلی ندارم

try
{
string email = "emailaddrres@gmail.com";
System.Net.Mail.MailMessage ms = new System.Net.Mail.MailMessage();
ms.From = new System.Net.Mail.MailAddress(email);
ms.To.Add("emailaddrres@gmail.com");
ms.Subject = "عنوان ایمیل";
ms.Body = "متن ایمیل";
System.Net.Mail.SmtpClient sm = new System.Net.Mail.SmtpClient("smtp.gmail.com")
{
Credentials = new NetworkCredential(email, "password"),
EnableSsl = true
};
sm.Send(ms);
MessageBox.Show("ارسال شد");
}
catch (Exception ex)
{
MessageBox.Show("خطا");
}

Pedram_Parsian
پنج شنبه 20 شهریور 1393, 12:13 عصر
سلام
این کد موقع ارسال ایمیل با آدرس جمیل خطا میده چرا؟ توی یاهو مشکلی ندارم

try
{
string email = "emailaddrres@gmail.com";
System.Net.Mail.MailMessage ms = new System.Net.Mail.MailMessage();
ms.From = new System.Net.Mail.MailAddress(email);
ms.To.Add("emailaddrres@gmail.com");
ms.Subject = "عنوان ایمیل";
ms.Body = "متن ایمیل";
System.Net.Mail.SmtpClient sm = new System.Net.Mail.SmtpClient("smtp.gmail.com")
{
Credentials = new NetworkCredential(email, "password"),
EnableSsl = true
};
sm.Send(ms);
MessageBox.Show("ارسال شد");
}
catch (Exception ex)
{
MessageBox.Show("خطا");
}

احتمالا به خاطر اینه که پورت رو مشخص نکردید :

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}

دلتنگ اسمان
پنج شنبه 20 شهریور 1393, 12:22 عصر
برای اتچ کردن فایل چه از جیمیل و چه از یاهو چیکار باید کرد؟

Pedram_Parsian
پنج شنبه 20 شهریور 1393, 13:19 عصر
برای اتچ کردن فایل چه از جیمیل و چه از یاهو چیکار باید کرد؟

این مقاله (http://www.codeproject.com/Tips/520998/Send-Email-from-Yahoo-GMail-Hotmail-Csharp) رو نگاه کنید کاملا متوجه می شید

drsina
پنج شنبه 20 شهریور 1393, 15:11 عصر
نکته : 90 % آنتی ویروس ها پورت smtp را بسته اند !
پی نوشت : این راه برای ارسال اطلاعات مناسب نیست .

Pedram_Parsian
پنج شنبه 20 شهریور 1393, 15:40 عصر
نکته : 90 % آنتی ویروس ها پورت smtp را بسته اند !
پی نوشت : این راه برای ارسال اطلاعات مناسب نیست .

90% ؟ :متفکر:
من هم Nod32 هم Avira رو دارم ولی تا حالا به مشکل بر نخوردم !

دلتنگ اسمان
پنج شنبه 20 شهریور 1393, 15:48 عصر
نکته : 90 % آنتی ویروس ها پورت smtp را بسته اند !
پی نوشت : این راه برای ارسال اطلاعات مناسب نیست .

راه حل دیگه چیه؟

drsina
جمعه 21 شهریور 1393, 02:35 صبح
Pedram _ Persian خب شما نبستید (مخصوصا 32Nod رو من دیدم کارش درسته )

دلتنگ آسمان : شما باید از HttpWebRequest برای کارت استفاده کنی که برای آپلود باید IIS سرور داشته باشی .
چون Http قابل بستن نیست . (هست ولی کسی نمی بنده !)

اگر دارین ویروس مینویسین ، خود آنتی ویروس اکثرا بعد از هفت روز اگر ببینن برنامه داره چیزی میفرسته سریعا از طریق اینترنت فایل رو برای خودشون میفرستن و فایل رو توو لیست سیاه ویروسیشون میزارن و فرستادنتون بلوک میشه ... البته راه هایی هست که آنتی ویروس رو دور زد ، مثلا اینکه با توابعی که System.Reflection داره ، برنامه رو به جوون چندتا فایله دات نتی داخلی ویندوز (البته متاسفانه پرمیشن میخواد UAC( بندازی و اونا متناوبم اجرا بشن . (البته آنتی ویروس ها هم خیلی پیشرفت کردن ، خودشون پروسس tree فایل میکشن و ریپیرش می کنن ، هرچند اینم دور زدنش راه داره ...)
کلا بی خیال ویروس میروس شیننن:لبخند:
چون واقعا یه Script Kiddie با اس ام تی پی فایل میفرسته .

اگرم میخواین کاربر هر چند وقت یه بار چیزی براتون بفرسته ، از همون http request استفاده کنین . در غیر این صورت از mailto : example@yahhoo.com استفاده کنین . چون اونم بعد یه مدت بلاک میشه .
در ضمن ftp هم کم و بیش میبندن .

اینم یه کد تووپ HttpRequest
public static string Create() {
string authInfo = "username" + ":" + "password";


string root = AppDomain.CurrentDomain.BaseDirectory;
string file = root + "Folder\\work.txt";


FileInfo fi = new FileInfo(file);
int fileLength = (int)fi.Length;


FileStream rdr = new FileStream(file, FileMode.Open);


HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.Accept = "application/xml";


authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(a uthInfo));
httpWebRequest.Headers["Authorization"] = "Basic " + authInfo;
byte[] requestBytes = new byte[fileLength];


int bytesRead = 0;
httpWebRequest.ContentLength = requestBytes.Length;
using (Stream requestStream = httpWebRequest.GetRequestStream())
{
while ((bytesRead = rdr.Read(requestBytes, 0, requestBytes.Length)) != 0)
{
requestStream.Write(requestBytes, 0, bytesRead);
requestStream.Close();
}
}
//READ RESPONSE FROM STREAM
string responseData;
using (StreamReader responseStream = new StreamReader(httpWebRequest.GetResponse().GetRespo nseStream()))
{
responseData = responseStream.ReadToEnd();
responseStream.Close();
}
return responseData;
}