2012-04-30 128 views
0

在ASP.NET/C#应用程序(mvc3)中,我希望能够发送邮件。C#:发送电子邮件给个人邮件和群发邮件(不适用于群发邮件)

这是我使用的功能:

public static void SendEmail(string fromEmail, string fromName, string toEmail, string toName, string subject, string emailBody, bool isBodyHtml, string[] attachments, string emailServer, int portNumber, string loginName, string loginPassword) 
    { 
     // setup email header 
     System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage(); 

     // Set the message sender 
     // sets the from address for this e-mail message. 
     mailMessage.From = new System.Net.Mail.MailAddress(fromEmail, fromName); 
     // Sets the address collection that contains the recipients of this e-mail message. 
     string[] toEmailList = toEmail.Split(','); 
     string[] toNameList = toName.Split(','); 
     for (int i = 0;i<toEmailList.Length;++i) 
     { 
      mailMessage.To.Add(new System.Net.Mail.MailAddress(toEmailList[i],toNameList[i])); 
     } 
     // mailMessage.To.(new System.Net.Mail.MailAddress(toEmail, toName)); 

     // sets the message subject. 
     mailMessage.Subject = subject; 
     // sets the message body. 
     mailMessage.Body = emailBody; 
     // sets a value indicating whether the mail message body is in Html. 
     // if this is false then ContentType of the Body content is "text/plain". 
     mailMessage.IsBodyHtml = isBodyHtml; 

     // add all the file attachments if we have any 
     if (attachments != null && attachments.Length > 0) 
      foreach (string _Attachment in attachments) 
       mailMessage.Attachments.Add(new System.Net.Mail.Attachment(_Attachment)); 

     // SmtpClient Class Allows applications to send e-mail by using the Simple Mail Transfer Protocol (SMTP). 
     System.Net.Mail.SmtpClient _SmtpClient = new System.Net.Mail.SmtpClient(emailServer); 

     //Specifies how email messages are delivered. Here Email is sent through the network to an SMTP server. 
     _SmtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 

     // Some SMTP server will require that you first authenticate against the server. 
     // Provides credentials for password-based authentication schemes such as basic, digest, NTLM, and Kerberos authentication. 
     System.Net.NetworkCredential _NetworkCredential = new System.Net.NetworkCredential(loginName, loginPassword); 
     _SmtpClient.UseDefaultCredentials = false; 

     _SmtpClient.Credentials = _NetworkCredential; 
     _SmtpClient.Port = portNumber; 
     //Let's send it 
     try 
     { 
      _SmtpClient.Send(mailMessage); 
      mailMessage.Dispose(); 
      _SmtpClient = null; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 

    } 

一切正常的个人电子邮件。

问题是这样的:

如果将电子邮件的一个(我送这个来的电子邮件)是一组电子邮件,它不给它。

按群电子邮件,我的意思是一个电子邮件有多个联系人附加到它,他们都收到邮件时,有人发送到该电子邮件。集团现

例子如果有人给我所有的家人收到一个电子邮件给[email protected]

我该如何使它适用于所有类型的电子邮件,而不仅仅是个人电子邮件。

非常感谢您的帮助

回答

0

我的个人Google Apps域存在同样的问题。但问题出在群组电子邮件的配置中,而不是在c#代码中。

您是否检查过您的群组电子邮件的权限?通常你可以定义谁可以发送电子邮件到这个组邮箱。所以你必须使用正确的电子邮件地址或重新配置权限。通常,该组的所有成员都可以向该组发送电子邮件。