发送在ASP.NET群发电子邮件电子邮件、ASP、NET

2023-09-03 01:09:42 作者:撒娇惯

这是我的code发送大量的电子邮件。我想优化这个code,以确保它会工作,并可以成功发送的所有电子邮件。我该怎么办?我知道,把发送的中断可能是有用的,但我怎么能做到这一点?

主要的问题是避免分类的电子邮件为垃圾邮件,减少失败发送的电子邮件数量。

VAR列表=从C在context.Emails排序依据c.EmailAddress选择c.EmailAddress; MailMessage电子邮件=新MailMessage(); 尝试 {     mail.From =新MailAddress(txtfrom.Text);     的foreach(在列表变种C)     {         mail.To.Add(新MailAddress(c.ToString()));     }     mail.Subject = txtSub.Text;     mail.IsBodyHtml = TRUE;     mail.Body = txtBody.Text;     如果(FileUpload1.HasFile)     {         mail.Attachments.Add(新的附件(            FileUpload1.PostedFile.InputStream,FileUpload1.FileName));     }     SmtpClient SMTP =新SmtpClient();     smtp.Send(邮件); } 赶上(例外) {     //异常处理 }

解决方案

我劝你对添加所有reciepients到相同的邮件。

而使用code:

  mail.From =新MailAddress(txtfrom.Text);
mail.Subject = txtSub.Text;
mail.IsBodyHtml = TRUE;
mail.Body = txtBody.Text;
如果(FileUpload1.HasFile)
{
    mail.Attachments.Add(新的附件(FileUpload1.PostedFile.InputStream,FileUpload1.FileName));
}
SmtpClient SMTP =新SmtpClient();
的foreach(在列表变种C)
{
    mail.To.Clear();
    mail.To.Add(新MailAddress(c.ToString()));
    smtp.Send(邮件);
}
 
8款世界级Webmail工具推荐 下载

This is my code to send lots of emails. I want to optimize this code to be sure that it will work and can successfully send all emails. What should I do? I know that putting interrupts between sending might be useful but how can I do this?

The main problem is avoiding classify emails as spam and decreasing number of failed sent emails.

var list = from c in context.Emails orderby c.EmailAddress select c.EmailAddress;
MailMessage mail = new MailMessage();
try
{
    mail.From = new MailAddress(txtfrom.Text);
    foreach (var c in list)  
    {  
        mail.To.Add(new MailAddress(c.ToString()));
    }
    mail.Subject = txtSub.Text;
    mail.IsBodyHtml = true;
    mail.Body = txtBody.Text;
    if (FileUpload1.HasFile)
    {
        mail.Attachments.Add(new Attachment(
           FileUpload1.PostedFile.InputStream, FileUpload1.FileName));
    }
    SmtpClient smtp = new SmtpClient();
    smtp.Send(mail); 
}
catch (Exception)
{
    //exception handling
}

解决方案

I would advise you against adding all reciepients into the same mail message.

Rather use this code:

mail.From = new MailAddress(txtfrom.Text);
mail.Subject = txtSub.Text;
mail.IsBodyHtml = true;
mail.Body = txtBody.Text;
if (FileUpload1.HasFile)
{
    mail.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName));
}
SmtpClient smtp = new SmtpClient();
foreach (var c in list)  
{  
    mail.To.Clear();
    mail.To.Add(new MailAddress(c.ToString()));
    smtp.Send(mail);
}