我尝试使用gmail服务一次发送所有电子邮件,电子邮件已成功发送。但是,发件人和收件人都会收到相同的电子邮件。
当我尝试发送一封电子邮件(不是多封电子邮件)时,只有收到该电子邮件的收件人(这是正确的)。
为什么会这样?
以下是我目前使用的代码:
让我们在 UserRepository 中说, 11个用户 需要系统发送电子邮件。
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);
}
}
任何帮助都将不胜感激。