转载地址:http://www.cnblogs.com/xililiu/archive/2012/03/24/2415657.html
最近一年,一直在和一个澳大利亚的客户做金融相关的项目,由于客户那边没有专门的IT相关的开发和维护人员,所有的沟通都是基于Email和skype的方式,邮件系统是他们平时最为依赖的一部分,只要这部分出问题了,再多的其他正在进行的事情都要搁置起来,先解决这个,所以将这个放在第一部分:
Step1:在IIS7.5下启用IIS6的SMTP,见下图:
Step2:点击SMTP-->Propertites:
Step3:设置邮件IP地址:
Step4:这一步比较重要,设置Relay restriction开始就是没设置这一步导致浪费了一天时间:
在弹出的页面选择All except the list below:
Step5:设置允许的最大邮件大小,每天最大连接数:
Step6: 设置邮件发送失败重发的邮件频率等等:
OK,这样在相关的设置就完成了。
相关的C#的SMTP操作的代码如下:
1) 发送不带附件的邮件
/// Send email without attachments
/// </summary>
/// <param name="ToMail">收件人邮箱地址</param>
/// <param name="FromMail">发件人邮箱地址</param>
/// <param name="Cc">抄送</param>
/// <param name="Bcc">密送</param>
/// <param name="Body">邮件正文</param>
/// <param name="Subject">邮件标题</param>
/// <returns></returns>
public string SendMail(string ToMail, string FromMail, string Cc, string Bcc, string Body, string Subject)
{
SmtpClient client = new SmtpClient();
MailMessage message = new MailMessage {
From = new MailAddress(FromMail)
};
message.To.Add(ToMail);
if (Cc != "")
{
message.CC.Add(Cc);
}
message.Body = Body;
message.Subject = Subject;
message.IsBodyHtml = true;
client.UseDefaultCredentials = true;
message.Priority = MailPriority.High;
client.Host = "127.0.0.1";//此处应该改为上面设置的服务器IP地址
client.Port = 0x19;
try
{
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(message);
message.Dispose();
return "1";
}
catch (Exception exception)
{
return ("0" + exception);
}
}
2)发送带附件的邮件
/// Send email without attachments
/// </summary>
/// <param name="ToMail">收件人邮箱地址</param>
/// <param name="FromMail">发件人邮箱地址</param>
/// <param name="Cc">抄送</param>
/// <param name="Bcc">密送</param>
/// <param name="Body">邮件正文</param>
/// <param name="Subject">邮件标题</param>
/// <param name="Attachments">附件列表</param>
/// <returns></returns>
public string SendMailWithAttachment(string ToMail, string FromMail, string Cc, string Bcc, string Body, string Subject, string[] Attachments)
{
SmtpClient client = new SmtpClient();
MailMessage message = new MailMessage {
From = new MailAddress(FromMail)
};
message.To.Add(ToMail);
if (Cc != "")
{
message.CC.Add(Cc);
}
message.Body = Body;
message.Subject = Subject;
message.IsBodyHtml = true;
message.Priority = MailPriority.High;
if (Attachments.Length > 0)
{
for (int i = 0; i < Attachments.Length; i++)
{
if (Attachments[i].ToString() != "")
{
Attachment item = new Attachment(Attachments[i].ToString());
message.Attachments.Add(item);
}
}
}
client.Host = "127.0.0.1";//此处应该改为上面设置的服务器IP地址
client.Port = 0x19;
try
{
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(message);
message.Dispose();
return "1";
}
catch (Exception exception)
{
return ("0" + exception);
}
}