PDA

View Full Version : مشکل در ارسال ایمیل



NOSRATGOLAB
جمعه 27 مرداد 1391, 10:47 صبح
من پروزه رو تو ویزوال استدیو دارم مینویسم و هنوز رو هاست نزاشتم الان چند تا مشکل دارم این کدی که دارم درست کار میکنه البته اگه محتوای ایمیل یا همون content زیر یه خط یا حداکثر یه خط باشه اگر بیشتر از یه خط باشه ایمیل ارسال میشه اما خالیه توش
2. میشه بگید کدو چجوری تغییر بدم که هم بشه بدون اتچ فرستاد هم با اتچ .چون این کد همش یه عکسی رو به عنوان اتچمنت میفرسته گاهی اوقات لازمه تنها یه ایمیل متنی بدون اتچمنت فرستاد که این حالتو پوشش نمیده

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net.Mail;
using System.Text;
using System.IO;
using System.Net.Mime;
using System.Text.RegularExpressions;

using System.Collections.Generic;
using System.ComponentModel;

using System.Drawing;



using System.Net;
namespace Test
{
public partial class send : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void NewBtn_Click(object sender, EventArgs e)
{
try
{
//mail message
MailMessage mM = new MailMessage();
//Mail Address
mM.From = new MailAddress("emial khodam@yahoo.com");
//emailid to send
mM.To.Add(To.Text);
//your subject line of the message
mM.Subject = Title.Text;
//now attached the file
mM.Attachments.Add(new Attachment(@"C:\\az1.jpg"));
//add the body of the email
mM.Body = Body.Text;

//SMTP
SmtpClient SmtpServer = new SmtpClient();
//your credential will go here
SmtpServer.Credentials = new System.Net.NetworkCredential("emil khodam@yahoo.com", "paswordr");
//port number to login yahoo server
SmtpServer.Port = 587;
//yahoo host name
SmtpServer.Host = "smtp.mail.yahoo.com";
//Send the email
SmtpServer.Send(mM);


}

catch (Exception ex)
{ ///jump to the page dealing with exception handling
Response.Redirect("ErrorPage.aspx?ErrorMsg=" + ex.Message.Replace("<br>", "").Replace("\n", "")
+ "&ErrorUrl=" + Request.Url.ToString().Replace("<br>", "").Replace("\n", ""));
}
Response.Redirect("~/Send.aspx");
}

protected void ReturnBtn_Click(object sender, EventArgs e)
{ ///return to the mail list page
Response.Redirect("~/Default.aspx");
}

}
}

fakhravari
جمعه 27 مرداد 1391, 16:53 عصر
نمونه.

public string pathImage;
public string ImageFileName;
public string UpPath;

public void uploadpic()
{
UpPath = Server.MapPath("Email_Atachment/");
if (!Directory.Exists(UpPath))
{
Directory.CreateDirectory(Server.MapPath("Email_Atachment/"));
}

pathImage = Server.MapPath("Email_Atachment/");
String[] validext = { ".rar", ".zip"};
string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile .FileName);

if (Array.IndexOf(validext, ext.ToLower()) < 0)
{
return;
}
else
{
int SIZE = FileUpload1.PostedFile.ContentLength;
if (SIZE < 4200000)
{
ImageFileName = System.IO.Path.GetFileName(FileUpload1.FileName);
while (System.IO.File.Exists(pathImage + ImageFileName))
{
ImageFileName = "1" + ImageFileName;
}

FileUpload1.PostedFile.SaveAs(pathImage + ImageFileName);
}
else
{
Label1.Text = "فایل شما به دلیل داشتن حجمی بیش از 2 مگابایت دریافت نشد. ";
}
}
}

protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
try
{
uploadpic();

System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage("To@a-velayat.com", "info@a-velayat.com");
mail.Body = TextBox1.Text.Trim();
mail.Subject = TextBox2.Text.Trim();
mail.BodyEncoding = Encoding.UTF8;
mail.SubjectEncoding = Encoding.UTF8;
mail.IsBodyHtml = false;
mail.Attachments.Add(new Attachment(pathImage + ImageFileName));
SmtpClient c = new SmtpClient();
c.Host = "mail.a-velayat.com";
c.Send(mail);
Label1.Text = "ایمیل ارسال شد";

TextBox1.Text = ""; TextBox2.Text = "";
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "CheckScript", "alert('پیام شما با موفقیت ارسال شد')", true);

}
catch
{
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "CheckScript", "alert('اخطار در ایمیل ارسالی')", true);
Label1.Text = "اخطار در ایمیل ارسالی";
}
}
}

نيما حتمي
شنبه 28 مرداد 1391, 18:19 عصر
دوست عزیز این کد شما ایمیل رو ارسال نمی کنه.مشکل چی می تونه باشه؟کمک کن که خیلی گیرم لطفا

NOSRATGOLAB
یک شنبه 29 مرداد 1391, 15:17 عصر
کد من یا کد آقای fakhravari ؟
در ضمن شما باید تنظیمات smtp رو روی سیستم تون انجام بدین تا ایمیل ارسال شه
تنظیمات smtp واسه ویندوز xp تو لینک زیر گفته
http://www.codeproject.com/Articles/15807/Easy-SMTP-Mail-Using-ASP-NET-2-0

واسه ویندوز 7 من تنظیمات smtp رو خودم بلد نیستم و در به در دنبالشم:گریه:

fakhravari
یک شنبه 29 مرداد 1391, 15:37 عصر
برسی کنید.
smtp.Host = Host;
smtp.Port = 25;
smtp.EnableSsl = false;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential(UserName, Password);
smtp.Send();

NOSRATGOLAB
یک شنبه 29 مرداد 1391, 17:10 عصر
ببخشید اینایی که گفتین واسه تنظیمات smtp تو ویندوز 7 ه؟

نيما حتمي
یک شنبه 29 مرداد 1391, 17:38 عصر
دوستان عزیز من win7 استفاده می کنم.همه این تنظیماتم اعمال کردم ولی ارسال ایمیل انجام نمی شه.عجب داستانی شده این ارسال ایمیل.چیکار باید کرد دوستان؟