2012-05-22 34 views
3

我有一个谷歌邮件如下图所示,我如何适应其他邮件系统?有没有更好的方法来做到这一点?我怎样才能改变邮件的来源(发件人)的名称。 所有帮助将不胜感激,谢谢你提前谷歌邮差类

MailMessage message = new MailMessage(); 
     message.From = new MailAddress(MailAddresds); 
     message.Subject = messagesubject; 
     message.Body = messagebody; 


     message.To.Add(messageto); 
     SmtpClient client = new SmtpClient(); 

     client.Credentials = new NetworkCredential(userName, password); 
     client.Host = "smtp.gmail.com"; 
     client.Port = 587; 
     client.EnableSsl = true; 
     client.Send(message); 

回答

1

刚例如:

public class MailMessage 
{ 
    public string From{get;set;} 
    public string To{get;set;} 
    public string Body{get;set;} 
    public string Subject{get;set;} 
    .... 
    //other common properties you may need 
} 


//interface 
public interface IMailService 
{ 
    Send(MailMessage m); 
} 

具体实现:

public class GoogleMail : IMailService 
{ 
    public Send(Message msg) 
    { 
     //google mail specific code 
    } 
} 


public class YahooMail : IMailService 
{ 
    public Send(Message msg) 
    { 
     //yahoo mail specific code 
    } 
} 

.... Hotmail,... 

某处代码创建支持邮件的集合服务

var mailservices = new List<IMailService>(); 
mailservices.Add(new GoogleMail()); 
mailservice.Add(new YahooMail()); 

之后,在程序运行期间,选择合适的服务继续用户请求。

+1

@downvoter:原因是什么? – Tigran

+0

可能与更改的“MailMessage”和“消息”类有关? – ry8806

+0

这不是downvotte的原因(特别是没有任何解释) – Tigran

1

简单的例子:

using System.Web.Mail; 

MailMessage objMessage = new MailMessage(); 
objMessage.From = "from"; 
objMessage.To = "to"; 
objMessage.Subject = "subject"; 
objMessage.BodyFormat = MailFormat.Text; 
objMessage.Body = "body"; 
SmtpMail.SmtpServer = "SmtpServer"; 
SmtpMail.Send(objMessage);