在ASP.NET / C#应用程序(mvc3)中,我希望能够发送Mail。
这是我正在使用的功能:
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;
}
}
一切都适用于个人电子邮件。
问题是:
如果其中一封TO电子邮件(我发送给它的电子邮件)是一组电子邮件,则不会发送给它。
通过群组电子邮件,我的意思是一个附有多个联系人的电子邮件,当有人将其发送到该电子邮件时,他们都会收到该消息。
群组电子邮件的示例
如果有人发送电子邮件至MyFamily@somedomain.com,我的全家都会收到。
如何使其适用于所有类型的电子邮件,而不仅仅是个人电子邮件。
非常感谢您的帮助
答案 0 :(得分:0)
我的个人Google Apps域遇到了同样的问题。但问题在于组电子邮件的配置,而不是在c#代码中。
您是否检查了群组电子邮件的权限?您通常可以定义谁可以向此群组电子邮件发送电子邮件。因此,您必须使用正确的电子邮件地址或重新配置权限。通常,该组的所有成员都可以向该组发送电子邮件。