C#发送邮件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using ShopMall.Model;
using System.Diagnostics;

namespace ShopMall.Common
{
public class sendEmail
{
private readonly SmtpClient Client;

public sendEmail(siteconfig site)
{
Client = new SmtpClient
{
Host = "smtp.qq.com",
Port =25,
DeliveryMethod = SmtpDeliveryMethod.Network
};
Client.UseDefaultCredentials = false;
Client.Credentials = new NetworkCredential("1002275364@qq.com","xxxxxxxxxxxxx");
}

/// <summary>
/// 发送邮件
/// </summary>
/// <param name="from"></param>
/// <param name="to"></param>
/// <param name="subject"></param>
/// <param name="body"></param>
/// <returns></returns>
public bool SendMessage(string from, string to, string subject, string body)
{
MailMessage msg = null;
bool isSent = false;
using (msg = new MailMessage(from, to, subject, body))
{
try
{
msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

Client.Send(msg);
isSent = true;
}
catch (Exception ex)
{
isSent = false;
Trace.TraceError(ex.Message);
}
return isSent;
}
}
}
}

 

在调用的时候提示mail from address must be same as authorization user,google后才知道 原来还需要邮箱开启smtp服务才行,于是乎(看下图)

保存后,ok啦

posted @ 2014-08-09 09:08  程序有Bug  阅读(1280)  评论(0编辑  收藏  举报