尝试一次发送多封电子邮件时发送给发件人和收件人的重复电子邮件

时间:2016-10-08 09:40:29

标签: c# asp.net gmail

我尝试使用gmail服务一次发送所有电子邮件,电子邮件已成功发送。但是,发件人和收件人都会收到相同的电子邮件。

当我尝试发送一封电子邮件(不是多封电子邮件)时,只有收到该电子邮件的收件人(这是正确的)。

为什么会这样?

以下是我目前使用的代码:

让我们在 UserRepository 中说, 11个用户 需要系统发送电子邮件。

  1. 仅收件人收到的单封电子邮件。 < - 正确
  2. 双方(发件人和收件人)收到的多封电子邮件< - 错误
  3. SendingEmail类:

    IEnumerable<UserRepository> multipleModels;
    UserRepository model;
    
    protected void SingleEmail_Click(object sender, EventArgs e)
    {
        SendSingleEmail(model);
    }
    
    protected void MultipleEmail_Click(object sender, EventArgs e)
    {
        SendMultipleEmail(multipleModels);
    }
    
    private void SendSingleEmail(UserRepository repository)
    {
        string email = File.ReadAllText(HttpContext.Current.Server.MapPath(string.Format("~/Email/Languages/{0}/Email.html", repository.EmailLanguage)));
        UserManager.SendSingleEmail(repository, email);
    }
    
    private void SendMultipleEmail(IEnumerable<UserRepository> repository)
    {
        foreach (var models in repository)
        {
            string email = File.ReadAllText(HttpContext.Current.Server.MapPath(string.Format("~/Email/Languages/{0}/Email.html", models.EmailLanguage)));
            UserManager.SendMultipleEmail(models, email);
        }
    }
    

    UserManager 类中发送电子邮件的代码:

    public static void SendSingleEmail(UserRepository repository)
    {
        string toEmail = ConfigurationManager.AppSettings["DevEmail"].ToString();
        string toName = "Email";
        string subject = "Single Subject Email";   
        EmailHelper.SendEmail(0, repository.Email, repository.Name, toEmail, toName, subject, repository.Description);
    }
    
    public static void SendMultipleEmail(UserRepository repository, string description)
    {
        string fromEmail = ConfigurationManager.AppSettings["DevEmail"].ToString();
        string fromName = "Nies";
        string subject = "Multiple Subject Email";
        EmailHelper.SendEmail(1, fromEmail, fromName, repository.Email, repository.Name, subject, description);
    }
    

    EmailHelper类:

    public static void SendEmail(int id, string fromEmail, string fromName, string toEmail, string toName, string subject, string description)
        {
            var fromAddress = new MailAddress(fromEmail, fromName);
            var toAddress = new MailAddress(toEmail, toName);
            string address = (id == 0 ? toAddress.Address : fromAddress.Address);
            var smtp = new SmtpClient
            {
                Host = ConfigurationManager.AppSettings["Mail"].ToString(),
                Port = 587,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(address, ConfigurationManager.AppSettings["DevPassword"].ToString())
            };
            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = subject,
                Body = description,
                Priority = MailPriority.High,
                IsBodyHtml = true
            })    
            {
                smtp.Send(message);
            }
        }
    

    任何帮助都将不胜感激。

0 个答案:

没有答案