# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ASP.NET Web Forms > آموزش: ارسال جدید ترین پست ها به ایمیل کاربران

## fakhravari

خیلی دیده بودم ارسال گروهی جدید ترین مطالب سایت میخواستین برای کاربران سایت.

1) گرفتن اطلاعات ایمیل کاربران
#region اطلاعات ایمیل
    public DataTable All_Email()
    {
        SqlConnection con = new SqlConnection(DAL.ConnectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "SELECT email from [email]";
        con.Open();

        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();

        da.Fill(dt);
        con.Close();
        return dt;
    }
    #endregion

2) گرفتن اطلاعات پست ها
#region اطلاعات جدید
    public DataTable All_Topik()
    {
        SqlConnection con = new SqlConnection(DAL.ConnectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "SELECT top(10) Message,Subject from B_Topics order by TopicID desc";
        con.Open();

        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();

        da.Fill(dt);
        con.Close();
        return dt;
    }
    #endregion

3) تابع ارسال ایمیل
#region ارسال ایمیل
    public void send(string Body, string Subj, string send, string resv)
    {
        System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(send, resv);
        mail.Body = Body;
        mail.Subject = Subj;
        mail.BodyEncoding = Encoding.UTF8;
        mail.SubjectEncoding = Encoding.UTF8;
        mail.IsBodyHtml = true;

        SmtpClient c = new SmtpClient();
        c.Host = "mail.a-velayat.com";
        c.Send(mail);
    }
    #endregion

4) دکمه ارسال
    protected void Button3_Click(object sender, EventArgs e)
    {
        DataTable dt = All_Topik();
        DataTable dt2 = All_Email();
        int ct = All_Topik().Rows.Count;
        int ce = All_Email().Rows.Count;

        for (int i = 0; i < ct; i++)
        {
            for (int b = 0; b < ce; b++)
            {
                send(dt.Rows[i]["Message"].ToString(), dt.Rows[i]["Subject"].ToString(), "fakhravary@yahoo.com", dt2.Rows[b]["email"].ToString());
            }
            
        }
    }

تنظیم در کنفیگ
<system.net>
        <mailSettings>
            <smtp from="fakhr@a-velayat.com">
                <network host="mail.a-velayat.com" password="tgkbvhhghj" userName="fakhr@a-velayat.com"/>
            </smtp>
        </mailSettings>
    </system.net>

 :لبخند گشاده!: 
میتونید در یه UpdatePanel بزارید برای نمایش مدت زمان

----------


## crazy_1892

سلام آقای فخراوری ، اگه بخوایم تنظیم کنیم که هفته ای یه بار به صورت خودکار اینکار را انجام بده باید جی کار کنیم

----------


## dorparasti

جالب بود . ممنون

اما  نحوه ارسال ایمیل تون به نظر من بهینه نیست . می تونید آدرس ایمیل ها رو در قسمت CC و یا BCC اضافه کنید . با اینکار تنها یکبار تابع ایمیل رو فراخوانی می کنید و کار ارسال ایمیلهای چتدگانه رو به خود ایمیل واگذار می کنید .

----------


## Saber_Fatholahi

سلام دوست من کار شما قابل تقدیره اما همانطور که دوستان گفتند
1- می تونین ایمیل توی قسمت BCC بنویسید
2- اطلاعات تاپیک های جدید برای همه ثابته می تونین یکبار بسازین بعد توی Body ایمیل قرار بدین اینجوری هم سرعت اجراتون میره بالا

در این روش شما به فرض اگر 1000 کاربر داشته باشید توی اون حلقه 10000 بار کد اجرا میشه

موفق و موید باشید

----------


## hamid_shrk

> در این روش شما به فرض اگر 1000 کاربر داشته باشید توی اون حلقه 10000 بار کد اجرا میشه


ایشون درست میگن، و این کار عملا امکان پذیر نیست با میل سرور های معمولی .
امتحانش مجانیه ..

----------


## mohsen.nsb44

> سلام دوست من کار شما قابل تقدیره اما همانطور که دوستان گفتند
> 1- می تونین ایمیل توی قسمت BCC بنویسید
> 2- اطلاعات تاپیک های جدید برای همه ثابته می تونین یکبار بسازین بعد توی Body ایمیل قرار بدین اینجوری هم سرعت اجراتون میره بالا
> 
> در این روش شما به فرض اگر 1000 کاربر داشته باشید توی اون حلقه 10000 بار کد اجرا میشه
> 
> موفق و موید باشید


 اقای فخاری محبت کردن و مثالی جهت اموزش قرار دادن از انجا که امکان ارسال ایمیل ها با کد ایشان امکان پذیر نیست میشه شما هم مثالی از روش خودتان در این تاپیک قرار بدید

----------


## kingmech

میشه 10-20 تا اکانت جیمیل ساخت :d از اونا تو برنامه استفاده کرد :d

----------


## fakhravari

ممنون از همگی.
بله دیگه ماهم تازه کاریم و کدامونم آبکی . :بامزه: 
*mohsen.nsb44
*بنده فخراوری هستم محمد حسین*
درسته کد بهیته نیست اما کار میده.
* خودم که روی هاستم تست میکردم با  3 تا کاربر و 20 مطلب اخر تست کرده بودم.* اره برای 300 کاربر کد جالب نیست * bcc باید بفرستی.

----------


## hamid_shrk

برای زمانبندی یکی از دوستان یک مقاله بسیار جالب ارائه داده بودن که من لینکش رو تو شرکت دارم ، هرچقدر هم سرچ میکنم پیداش نمیکنم . :خجالت: 
فکر میکنم مدیر محترم آقای raziee بدونن.

----------


## crazy_1892

> برای زمانبندی یکی از دوستان یک مقاله بسیار جالب ارائه داده بودن که من لینکش رو تو شرکت دارم ، هرچقدر هم سرچ میکنم پیداش نمیکنم .
> فکر میکنم مدیر محترم آقای raziee بدونن.



جناب آقای raziee میشه در این مورد کمک کنید

----------


## hamid_shrk

لینک رو پیدا کردم ، بفرمایید :
https://barnamenevis.org/showthread.p...1+%D9%88%D8%A8

----------


## mohsen.nsb44

> ممنون از همگی.
> بله دیگه ماهم تازه کاریم و کدامونم آبکی .
> *mohsen.nsb44
> *بنده فخراوری هستم محمد حسین*
> درسته کد بهیته نیست اما کار میده.
> * خودم که روی هاستم تست میکردم با  3 تا کاربر و 20 مطلب اخر تست کرده بودم.* اره برای 300 کاربر کد جالب نیست * bcc باید بفرستی.
> *در مورد زمان بندی اطلاعاتی ندارم* = اگر دوستان زحمت این قسمت بکشند.


 جناب فخاری بنده جسارت نکردم حتی از بابت اینکه مثالی جهت اموزش قرار دادین تشکر میکنم و حتی تو پستمم گفتم که محبت کردین مثالی جهت اموزش قرار دادین صرفا به خاطر اینکه کد شما برای کاربران زیاد مثلا 500 کاربر امکان پذیر نیست از دوستان خواستم مثالی از روش پیشنهادی خودشان قرار دهند امیدوارم از حرف های بنده ناراحت نشده باشین نیت فقط دیدن روش های دیگر دوستان بود

----------


## fakhravari

بله منم که چیز خاصی نگفتم. :بامزه: 
*خوب دوستان کد بهینه تر کنید .*

----------


## fakhravari

با سلام
کد تغیر دادم و کپی رو نوشت دادم به  bcc , cc  اما بعد ارسال اولین رکورد
 که دادم به 
MailMessage mail = new  MailMessage("fakhravary@yahoo.com",  dt2.Rows[0]["email"].ToString());
درسته و به Inbox   میره ولی 
 for (int b = 1; b < ce;  b++)
{
mail.CC.Add(dt2.Rows[b]["email"].ToString());
// bcc
// to
// برسی کردم
}
 به Spam   میره. پیشنهاد شما چیست؟
gmail
> 5 به 5 میره مطالب میره inbox,spam
hotmail
4,5 میره inbox, spam
protected void Button3_Click(object sender, EventArgs e)
    {
        DataTable dt = All_Topik();
        DataTable dt2 = All_Email();
        int ct = All_Topik().Rows.Count;
        int ce = All_Email().Rows.Count;

        for (int i = 0; i < ct; i++)
        {
            string msg = dt.Rows[i]["Message"].ToString();
            string sub = dt.Rows[i]["Subject"].ToString();

            MailMessage mail = new MailMessage("fakhravary@yahoo.com", dt2.Rows[0]["email"].ToString());
            mail.Body = msg;
            mail.Subject = sub;
            mail.BodyEncoding = Encoding.UTF8;
            mail.SubjectEncoding = Encoding.UTF8;
            mail.IsBodyHtml = true;

            for (int b = 1; b < ce; b++)
            {
                mail.CC.Add(dt2.Rows[b]["email"].ToString());
            }

            SmtpClient c = new SmtpClient();
            c.Host = "mail.a-velayat.com";
            c.Send(mail);
        }
    }

----------


## fakhravari

دوستان پیشنهاد شما چی؟؟
من برسی کردم تاپیک مرجع ارسال ایمیل ولی به نتیجه ای نرسیدم.
ارسال body تبدیل به spam نمیشه ولی to اول نمیشه ولی بعدیا میره به spam
cc,bcc,to
مجوز هایی میخوا برای ارسال؟

----------


## crazy_1892

دوست عزیز من هم همیچین مشکلی داشتم وقتی تعداد ایمیل زیاد بودspam  میشد با مدیریت هاست تماس گرفتم بعد از دو روز برام درست کرد

----------


## fakhravari

خوب تیکت زدم میریت تا جوابش بیاد.
خوب اگر درست بشه کد بهینه است دیگه چون bcc ایمیل که رونوشت ایمیل میشه ارسال میشه.

----------


## reza4359

آقای فخر آوری میشه مثال عملی این رو بذارید؟ 
ممنون میشم

----------


## fakhravari

> آقای فخر آوری میشه مثال عملی این رو بذارید؟ 
> ممنون میشم


sample               .

----------


## reza4359

آقای فخر آوری من از کد شما روی هاست استفاده کردم جواب نمیده !!!
من با یک insert  آدرس ایمیل رو از کاربر میگیرم و با کد شما اطلاعات رو واکشی میکنم و میفرستم ولی ایمیلی دریافت نمیکنم!

----------


## fakhravari

توی این پست شما مشکل دارید https://barnamenevis.org/showthread.p...85%DB%8C%D9%84
روی سمپل من الانشم یوزر و پسورد ها فعال یعنی ایمیل میشه ارسال کرد .

----------


## mahmood_4246

کدی که برادر فخراوری گذاشته تموم ایمیل ها رو به سمت spam هدایت میکنه .. با سرور باید همانگ باشید .. باید ببینید در 1 دقیقه چند تا ایمیل اجازه ارسال میده .. چون سرور تو لیست spam میفته

----------


## fakhravari

جواب مدیریت
همانطور که قبلا نیز پاسخ داده شد، این تنظیمات مربوط به سیاست های ضد اسپم میل سرور گیرنده است و ارتباطی با سرویس ایمیل فرستنده نخواهد داشت. لذا تنظیم تاثیر گذاری از سمت میل سرور فرستنده وجود ندارد. لازم به ذکر است که در سرویسهای  ایران هاست ارسال ایمیل تبلیغاتی و اسپم به هیچ وجه مجاز نبوده و پشتیبانی نمی گردد. ضمنا  لطفا از ارسال سوال و ایمیل تکراری خودداری فرمایید.
 
 در زمینه قوانین ایران هاست در رابطه با ارسال ایمیل ، اعمال زیر تخطی از این قوانین محسوب خواهند شد:
    * ارسال هرزنامه (Spam  ) عمدا ویا سهوا (ملاک، گزارش Spam cop  یا سایتهای مشابه و یا بررسی تیم فنی شرکت می باشد) حتی اگر از سرویس میل سرویس دهنده ثالثی استفاده شده باشد.
    * ارسال ایمیل بصورت گروهی و تعداد بالا (حداکثر 1000 ایمیل در روز و 50 ایمیل در 10 دقیقه مجاز می باشد به شرط آنکه کلیه گیرندگان ایمیلها، خودشان درخواست دریافت ایمیل از خریدار را داشته و آدرس و توضیح نحوه لغو عضویت به زبان انگلیسی در متن ایمیل وجود داشته باشد). لازم به ذکر است که قوانین ایران هاست در سایت به وضوح ذکر شده و ثبت نام و خرید سرویس به منزله پذیرش این قوانین است .

----------


## fakhravari

> سلام آقای فخراوری ، اگه بخوایم تنظیم کنیم که هفته ای یه بار به صورت خودکار اینکار را انجام بده باید جی کار کنیم


با سلام
یه نمونه.
اول این پست برسی کنید بعد سمپل منو ببینید.
این سمپل در زمان اجرای هر 5 ثانیه یه insert میزنه به بانک که شما میتونید به جای ان تابع ایمیل بزارید .
https://barnamenevis.org/showthread.p...1+%D9%88%D8%A8

فقط در زمان run در جدول email زمان زخیره میشه که اگر دکمه send بزنید erro میده . زمان از جدول email دلیت کنید درست میشه.

----------


## reza4359

خب دوستان به لطف خدا و کمک دوستان مشکل حل شد از همگی خصوصا آقای فخر آوری ممنون :لبخند:

----------


## betisa

با سلام به همه 
همان طور که در قوانین شرکت ایران هاست اشاره شده بود



> * ارسال  ایمیل بصورت گروهی و تعداد بالا (حداکثر 1000 ایمیل در روز و 50 ایمیل در  10 دقیقه مجاز می باشد به شرط آنکه کلیه گیرندگان ایمیلها، خودشان درخواست  دریافت ایمیل از خریدار را داشته و آدرس و توضیح نحوه لغو عضویت به زبان  انگلیسی در متن ایمیل وجود داشته باشد). لازم به ذکر است که قوانین ایران هاست در سایت به وضوح ذکر شده و ثبت نام و خرید سرویس به منزله پذیرش این قوانین است .


برای این که ارسال گروهی ایمیل ها به منزله اسپم نباشه باید به چند نکته توجه کرد 
1-  کلیه گیرندگان ایمیلها، خودشان درخواست  دریافت ایمیل از خریدار را داشته و آدرس و توضیح نحوه لغو عضویت به زبان  انگلیسی در متن ایمیل وجود داشته باشد.
*شرح:
*       در ایمیل ارسالی باید دو کلمه subscribing و  unsubscribe باشد و در ضمن کلمه unsubscribe به لینکی از سایت فرستنده ایمیل  مربوط باشد
2-متن ها به صورت html باشد

----------


## fakhravari

> با سلام به همه 
> همان طور که در قوانین شرکت ایران هاست اشاره شده بود
> 
> 
> برای این که ارسال گروهی ایمیل ها به منزله اسپم نباشه باید به چند نکته توجه کرد 
> 1-  کلیه گیرندگان ایمیلها، خودشان درخواست  دریافت ایمیل از خریدار را داشته و آدرس و توضیح نحوه لغو عضویت به زبان  انگلیسی در متن ایمیل وجود داشته باشد.
> *شرح:
> *       در ایمیل ارسالی باید دو کلمه subscribing و  unsubscribe باشد و در ضمن کلمه unsubscribe به لینکی از سایت فرستنده ایمیل  مربوط باشد
> 2-متن ها به صورت html باشد


با سلام
به چه شکل استفاده کنم از این 2 کلمه؟

----------


## Saman Hashemi

نکته ای که هست برای spam نشدن ایمیل ها باید آدرس سایت،شماره تلفن و دیگر مشخصات شرکت و یا سایت بنویسید تا حداقل در تعداد پایین اسپم نشه...!
بعدم اگه شما بخواهید فکر کنم بشه اون 1000 ایمیل در روز درستش کنید قانون من درآوردی شرکت و فکر نکنم ربطی به قانون های بین المللی داشته باشه چون اگه اینطور بود این سایتهای ایرانی و خارجی پدر ایمیل ما رو در نمیاوردن...!

----------


## mohsen.nsb44

> با سلام
> یه نمونه.
> اول این پست برسی کنید بعد سمپل منو ببینید.
> این سمپل در زمان اجرای هر 5 ثانیه یه insert میزنه به بانک که شما میتونید به جای ان تابع ایمیل بزارید .
> https://barnamenevis.org/showthread.p...1+%D9%88%D8%A8
> 
> فقط در زمان run در جدول email زمان زخیره میشه که اگر دکمه send بزنید erro میده . زمان از جدول email دلیت کنید درست میشه.


 اقای فخر اوری به لطف راهنمایی شما در ارسال ایمیل تکی مشکلی ندارم اما در ارسال ایمیل گروهی نمونه سورس شما رو دانلود کردم و عین اونارو کپی کردم و فقط اسم جدول رو عوض کردم اما ایمیل ارسال نمیشه
کد هایی که استفاده کردم رو میزارم در ضمن ایمیل کاربران در membership ذخیره میشه که از اون خوندم


 #region اطلاعات جدید
    public DataTable All_Topik()
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString=System.Configuration.Configur  ationManager.ConnectionStrings["connectionstring"].ConnectionString;
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "SELECT top(10) onvan,matn from news order by id desc";
        con.Open();

        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();

        da.Fill(dt);
        con.Close();
        return dt;
    }
    #endregion





 #region اطلاعات ایمیل
    public DataTable All_Email()
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = System.Configuration.ConfigurationManager.Connecti  onStrings["connectionstring"].ConnectionString;
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "SELECT email from aspnet_membership";
        con.Open();

        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();

        da.Fill(dt);
        con.Close();
        return dt;
    }
    #endregion





 try
        {
            DataTable dt = All_Topik();
            DataTable dt2 = All_Email();
            int ct = All_Topik().Rows.Count;
            int ce = All_Email().Rows.Count;



            for (int i = 0; i < ct; i++)
            {
                string msg = dt.Rows[i]["onvan"].ToString();
                string sub = dt.Rows[i]["matn"].ToString();

                MailMessage mail = new MailMessage("admin@iransabtenam.com", dt2.Rows[0]["email"].ToString());
                
                mail.Body = sub;
                mail.Subject = msg;
                mail.IsBodyHtml = true;
                mail.Priority = MailPriority.High;

                mail.BodyEncoding = Encoding.UTF8;
                mail.SubjectEncoding = Encoding.UTF8;
                //mail.HeadersEncoding = Encoding.UTF8;
                mail.Headers.Add("ایران ثبت نام", "admin@iransabtenam.com");
                


                for (int b = 1; b < ce; b++)
                {
                    mail.Bcc.Add(dt2.Rows[b]["email"].ToString());
                }

                SmtpClient c = new SmtpClient("mail.iransabtenam.com", 25);
                c.Send(mail);
            }

        }
        catch
        {
            MessageScript("اشکال در ارسال ایمیل", this);
        }

    }
    public static void MessageScript(string function, Page thispage)
    {
        thispage.ClientScript.RegisterStartupScript(thispa  ge.GetType(), "msg", function, true);
    }

----------


## fakhravari

برای ممبرشیپ از این استفاده کنselect DISTINCT Email from aspnet_Membership
خود DataTable چک کن ببین مقداری میگیره اگر گرفت نباید مشکلی در ارسال باشه
* Spam چک کنید.*

----------


## mohsen.nsb44

> برای ممبرشیپ از این استفاده کنselect DISTINCT Email from aspnet_Membership
> خود DataTable چک کن ببین مقداری میگیره اگر گرفت نباید مشکلی در ارسال باشه
> * Spam چک کنید.*


 دوست عزیز کد رو به صورتی که گفتید تغییر دادم اما باز ایمیلی برای من ارسال نشد

----------


## fakhravari

نباید مشکلی باشه.
https://barnamenevis.org/showthread.p...=1#post1477481

----------


## mohsen.nsb44

> نباید مشکلی باشه.
> https://barnamenevis.org/showthread.p...=1#post1477481


 دوست عزیز من همه کارهارو انجام دادم کدها رو هم که واستون گذاشتم روی دکمه کلیک میکنم هیچ اخطاری بهم نمیده اجرا میشه اما ایمیلی نمیاد برام

----------


## bitcob589

چگونه می توان تشخیص داد جدیدترین پست برای کدام یک از ایمیلها ارسال نشده است

----------


## fakhravari

> چگونه می توان تشخیص داد جدیدترین پست برای کدام یک از ایمیلها ارسال نشده است


 در تابع public void send(string Body, string Subj, string send, string resv)
void  را از نوع bool بگیرید و با دستورات try ,catch میتونید مشخص کنید.
اگر در catch افتاد یعنی ارسال نشده است.

----------


## bitcob589

کد به صورت زیر نوشته شده است خطا دارد 

public bool send(string from, string Body, string Subj, string send, string resv)
{
try
{
DataTable dt = All_Topik();
DataTable dt2 = All_Email();
int ct = All_Topik().Rows.Count;
int ce = All_Email().Rows.Count;
　
　
for (int i = 0; i < ct; i++)
{
string msg = dt.Rows[i]["Message"].ToString();
string sub = dt.Rows[i]["Subject"].ToString();
MailMessage mail = newMailMessage();
mail.From = newMailAddress(from, "جدید ترین پست های سایت", UTF8Encoding.UTF8);
mail.To.Add(dt2.Rows[0]["email"].ToString());
mail.Body = msg;
mail.Subject = sub;
mail.IsBodyHtml = true;
mail.Priority = MailPriority.High;
mail.BodyEncoding = Encoding.UTF8;
mail.SubjectEncoding = Encoding.UTF8;
mail.HeadersEncoding = Encoding.UTF8;
mail.Headers.Add("Company", "FAKHRAVARY.SOMEE");
mail.Headers.Add("Location", "Iran/Bousher");
mail.Headers.Add("Tell", "09173700916");
　
for (int b = 1; b < ce; b++)
{
mail.Bcc.Add(dt2.Rows[b]["email"].ToString());
}
SmtpClient c = newSmtpClient("mail.a-velayat.com", 25);
c.Credentials = newNetworkCredential("fakhr@a-velayat.com", "fakhravary");
c.EnableSsl = false;
c.Send(mail);
}
return from;
}
catch (Exception ex)
{
}
}

چگونه می توان درون catch نام ایمیلیهای که برای آنها جدید ترین پست ارسال نشده است دریافت و ذخیره کرد
لطفا راهنمایی بفرمایید

----------


## fakhravari

یه مثال ساده میزنم کاری با متد های بالا ندارم
 public static bool send(string Body, string Subj, string user, string resv)
        {
            try
            {
                // تابع ارسال

                return true;
            }
            catch { return false; }
        }
 List<string> user = new List<string>();
            int rows = 10;// تعداد کاربران
            for (int i = 0; i < rows; i++)
            {
                if (!send("", "", "", "")) // در صورت ارسال نشدن
                {
                    user.Add("نام کاربر");
                }
            }

----------


## aminmorteza

تویه این سایت یه مثال جالبی هست www.how2learnasp.net .فکر کنم برای جلوگیری از spam شدن آمده هر دو تا میلی که ارسال میشه مدتی صبر میکنه و دوباره دو تای بعدی....یه progress bar ساده هم داره که خیلی جالبه تعداد ایمیل های ارسالی رو به صورت درصد نشون میده.

----------


## bitcob589

> تویه این سایت یه مثال جالبی هست www.how2learnasp.net .فکر کنم برای جلوگیری از spam شدن آمده هر دو تا میلی که ارسال میشه مدتی صبر میکنه و دوباره دو تای بعدی....یه progress bar ساده هم داره که خیلی جالبه تعداد ایمیل های ارسالی رو به صورت درصد نشون میده.


اگر می شود لینک بگذارید 


چگونه می توان برای جلوگیری از spam شدن ایملیها بعد از ارسال 1000 ایمیل 5 دقیقه وقفه ایجاد کرد

----------


## fakhravari

کاری به مکس نداره ارسال نداره.
همه چیز بستگی به هاست داره.
با مدیریت باید تماس بگیرید و ببینید چنتا ارسال در دقیقه میتوانید داشته باشید

----------


## bitcob589

> کاری به مکس نداره ارسال نداره.
> همه چیز بستگی به هاست داره.
> با مدیریت باید تماس بگیرید و ببینید چنتا ارسال در دقیقه میتوانید داشته باشید


تعداد ارسال ایمیل در دقیقه نیاز به کد نویسی ندارد

----------


## sajad_boj70

> خیلی دیده بودم ارسال گروهی جدید ترین مطالب سایت میخواستین برای کاربران سایت.
> 
> 1) گرفتن اطلاعات ایمیل کاربران
> #region اطلاعات ایمیل
>     public DataTable All_Email()
>     {
>         SqlConnection con = new SqlConnection(DAL.ConnectionString);
>         SqlCommand cmd = new SqlCommand();
>         cmd.Connection = con;
> ...


سلام آقای فخرآوری.من از این کد استفاده کردم اما جواب نمیده.!
الان من میخوام با ایمیل خودم که : sajad_boj1371@yahoo.com هستش واسه اعضای سایتم ایمیل بفرستم.
حالا این قسمت وب کانفیگ رو باید چه طوری پر کنم
  <smtp from="fakhr@a-velayat.com">
 <network host="mail.a-velayat.com" password="tgkbvhhghj" userName="fakhr@a-velayat.com"/>
این mail.a-velayat.com  چیه؟؟؟ باید به جاش چی بزارم؟
تو تابع ارسال هم این قسمت چی جوری میشه؟؟

SmtpClient c = new SmtpClient();        c.Host = "mail.a-velayat.com";
        c.Send(mail);
host یاهو چیه؟؟

----------


## fakhravari

تنظیمات یاهو
using System.Net.Mail;
using System.Net;
using System;
public class SendMail
{
    public string sendmail_fromyahoo()
    {
        try
        {
            string To = "fakhravary@yahoo.com";
            string From = "fakhravary@yahoo.com";
            string Subject = "This is a test";
            string Body = "It works!";
            string FromName = "your Name";
            String ToName = "your Friend`s Name";
            MailAddress FromAddr = new MailAddress(From, FromName, System.Text.Encoding.UTF8);
            MailAddress ToAddr = new MailAddress(To, ToName, System.Text.Encoding.UTF8);
            var smtp = new SmtpClient
            {
                Host = "smtp.mail.yahoo.com",
                Port = 25,
                EnableSsl = false,// yahoo does not support the secure connection but gmail does!
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new System.Net.NetworkCredential("fakhravary@yahoo.com  ", "mohamad6321")
            };
            using (MailMessage message = new MailMessage(FromAddr, ToAddr)
            {
                Subject = Subject,
                Body = Body,
                IsBodyHtml = false,
                BodyEncoding = System.Text.Encoding.UTF8,
            })
            {
                smtp.Send(message);
                return "true";
            }
        }
        catch (Exception ex)
        {
            return String.Format("{0}", ex);
        }
    }
}

----------


## sajad_boj70

> تنظیمات یاهو
> using System.Net.Mail;
> using System.Net;
> using System;
> public class SendMail
> {
>     public string sendmail_fromyahoo()
>     {
>         try
> ...


ممنون.جواب گرفتم.منتها مشکلی که هست اینه که اگه بخوام 3 تا رکورد آخر اخبارم رو واسه هر نفر بفرستم به جای اینکه سه تیتر خبر رو در یک ایمیل بفرسته واسه هر خبر یک ایمیل میفرسته.؟

----------


## fakhravari

برمیگرده به seelct شما.
select جوری بنویسید که 3 تیتر رو در 1 رکورد بده

----------


## minaalamshahi

> خیلی دیده بودم ارسال گروهی جدید ترین مطالب سایت میخواستین برای کاربران سایت.
> 
> 1) گرفتن اطلاعات ایمیل کاربران
> #region اطلاعات ایمیل
>     public DataTable All_Email()
>     {
>         SqlConnection con = new SqlConnection(DAL.ConnectionString);
>         SqlCommand cmd = new SqlCommand();
>         cmd.Connection = con;
> ...


تنظیمات webconfig  رو میشه توضیح بدین

و اینکه host  رو چی باید بذارم؟

sender  و reciver  ایمیل میتونه هم یاهو باشه هم gmail?

----------


## minaalamshahi

> ممنون.جواب گرفتم.منتها مشکلی که هست اینه که اگه بخوام 3 تا رکورد آخر اخبارم رو واسه هر نفر بفرستم به جای اینکه سه تیتر خبر رو در یک ایمیل بفرسته واسه هر خبر یک ایمیل میفرسته.؟


آدرس ایمیل اشتباه هم در قسمت to  میدم خطا نمیده بهم؟

----------


## fakhravari

*minaalamshahi*فکر نکنم سخت باشه خیلی خواناست
تنظیمات درست بودن یا خراب خودتون میتونید یه متد بنویسید چک کنه. معتبر بودنش نمیدونم از سمت یاهو یا گوگل

----------


## fakhravari

/// <summary>
        /// رشته ایمیل
        /// </summary>
        /// <param name="Text">ایمیل</param>
        public static bool Email(string Text)
        {
            if (System.Text.RegularExpressions.Regex.IsMatch(Text  , @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"))
            { return true; }
            else { return false; }
        }

----------


## setareh2013

با تشکر از شما این کدها رو استفاده کردم حالا خطا میده که 
_Bad sequence of commands. The server response was: This mail server  requires  authentication when attempting to send to a non-local e-mail  address. Please  check your mail client settings or contact your  administrator to verify that the  domain or address is defined for this  server._ 
باید چه کار کنم ؟

----------


## fakhravari

یوزر پسرورد های سرور ایمیل معتبر نیست

----------


## setareh2013

یوزر پسورد رو چک کردم مشکلی نداره 
شرکتی که ازش هاست خریدم میگه :
شناسه و رمز عبور همانی است که شما در بخش تعریف پست الکترونیک تنظیم کرده اید.
بمنظور جلوگیری از هرزنامه نگاری از طریق سرور های پویاسازان ، ما قسمت remote authentication را بر روی سرور فعال کرده ایم ، بنابراین شما باید قبل از ارسال پست الکترونیک گزینه SMTP authentication را فعال کنید.
برای انجام این تنظیم در نرم افزار outlook express شما باید به بخش Tools>Accounts>Mail>E-mail Properties>Servers بروید و گزینه my server requires authentication را تیک بزنید.

من با outlook  کار نکردم . اصلا چه ربطی به outlook  داره ؟

----------


## setareh2013

داخل وبکانفیگ اینو نوشتم :
  <system.net>
    <mailSettings>
      <smtp from="Info@mysite.ir">
        <network host="mail.mysite.ir" password="Info123456" userName="Info@mysite.ir" />
      </smtp>
    </mailSettings>
  </system.net>
پسورد ایمیلم هم که روی هاست تعریف کردم همینی هست که بالا نوشتم
با تشکر

----------


## fakhravari

ببنید در کل یک روش تنظیم در وب کنفیگ داریم 
یه روش دیگه همه سوزر پس ایپی مستقیم درون کد میزاریم.
-------------------------------------------------------------------------
روش وب کنفیگ
<system.net>
        <mailSettings>
            <smtp from="mkazemifar@yahoo.com.com">
                <network host="smtp.mail.yahoo.com" password="velayat123" userName="info@a-velayat.com"/>
            </smtp>
        </mailSettings>
    </system.net>
                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;
                SmtpClient c = new SmtpClient();
                c.Host = "mail.a-velayat.com";
                c.Send(mail);
روش دیگر
http://forum.ustmb.ir/thread2225.html

----------


## setareh2013

حالا این تنظیمات outlook express رو چه کار کنم ؟

----------


## fakhravari

چی کار به outlook دارید اصلا!

----------


## مرتضی تقدمی

سلام
دلیل اینکه ایمیل هاست من به یاهو ایمیل می فرسته ولی به جیمیل نمی فرسته چی می تونه باشه؟!
ممنون

----------


## setareh2013

> چی کار به outlook دارید اصلا!


 شرکتی که ازش هاست رو خریدم این پیغام رو داده :
منظور جلوگیری از هرزنامه نگاری از طریق سرور های پویاسازان ، ما قسمت  remote authentication را بر روی سرور فعال کرده ایم ، بنابراین شما باید  قبل از ارسال پست الکترونیک گزینه SMTP authentication را فعال کنید.
برای انجام این تنظیم در نرم افزار outlook express شما باید به بخش  Tools>Accounts>Mail>E-mail Properties>Servers بروید و گزینه  my server requires authentication را تیک بزنید.

----------


## fakhravari

عزيز دل برادر شما بايد يه سري يوزر پسورد با ايپي اتصال داشته باشيد ديگه چيزي نميخواد..
اون روش براي برنامه ويندوزي كه مثل my computer باش رفتار كنيد
http://forum.ustmb.ir/thread2225.html

----------


## setareh2013

یوزرنیم من اینه : password="Info123456" userName=Info@mysite.ir"  پسوردم هم password="Info123456  
آدرس ایمیلم هم  Info@mysite.ir
 میشه بگین دقیقا توی وب کانفیگ چی بنویسم که درست بشه . من هر چند صورت بالا رو امتحان کردم بازم به یوزو پسوردم خطا میده .
با تشکر

----------


## amireastern

salam mamnon az shoma ama Entity frameWork baladam ado dos nadaram mishe begin jaygozinesh chie?

----------


## fakhravari

> salam mamnon az shoma ama Entity frameWork baladam ado dos nadaram mishe begin jaygozinesh chie?


یکی از سوالات عجیب !
به هر حال شما داده هایی دارید از خروجی select

----------


## fakhravari

> یوزرنیم من اینه : password="Info123456" userName=Info@mysite.ir"  پسوردم هم password="Info123456  
> آدرس ایمیلم هم  Info@mysite.ir
>  میشه بگین دقیقا توی وب کانفیگ چی بنویسم که درست بشه . من هر چند صورت بالا رو امتحان کردم بازم به یوزو پسوردم خطا میده .
> با تشکر


network host="itnevisan.com" password="fakhravary1" userName="info@itnevisan.com"

----------

