템 플 릿 에 따라 메 일 보 내기

사이트 에 서 는 사용자 에 게 메 일 을 보 내야 할 수도 있 고 사용자 에 게 보 내 는 메 일 내용 은 일부 내용 이 다른 것 을 제외 하고 대부분 내용 이 같 을 수 있 으 므 로 템 플 릿 에 따라 메 일 을 보 내야 합 니 다.기본 사상 은 메 일 템 플 릿 을 정의 하고 메 일 템 플 릿 에서 바 꿀 문자열 을 정의 한 다음 정규 표현 식 으로 찾 아 바 꾸 는 것 입 니 다.구체 적 인 실현 방법 을 말씀 드 리 겠 습 니 다.
 1. 템 플 릿 메 일 을 정의 합 니 다.일반적으로 템 플 릿 파일 을 html 파일 로 정의 합 니 다. 

  
<! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head >
< title > </ title >
</ head >
< body >
:{#AccountName}
< br />
:{#Password}
< br />< br />
{#Date}
</ body >
</ html >

2. 정규 표현 식 을 사용 하여 찾 고 교체 합 니 다.

  
public class EmailParam
{
private string _type;
private string _value;

public string Value
{
get { return _value; }
set { _value = value; }
}
public string Type
{
get { return _type; }
set { _type = value; }
}
}
public static void Send(List < EmailParam > listEmailParam)
{
// html ,
string filePath = AppDomain.CurrentDomain.BaseDirectory + " EmailTemplate/ForgetPassword.htm " ;
StreamReader sr
= new StreamReader(filePath);
string mailContent = sr.ReadToEnd();

//
Regex regex = new Regex( @" \{#([^\}]*)(\}) " ,RegexOptions.IgnoreCase);
MatchCollection matchResult
= regex.Matches(mailContent);
for ( int i = 0 ; i < listEmailParam.Count; i ++ )
{
for ( int j = 0 ; j < matchResult.Count; j ++ )
{
if (listEmailParam[i].Type == matchResult[j].Value)
{
mailContent
= mailContent.Replace(matchResult[j].Value, listEmailParam[i].Value);
}
}
}
// Gamil
MailAddress from = new MailAddress( " ***@gmail.com " , " " );
MailAddress to
= new MailAddress( " ***@163.com " , " " );
MailMessage mailMessage
= new MailMessage(from, to);
mailMessage.Body
= mailContent;
mailMessage.Subject
= " " ;
mailMessage.IsBodyHtml
= true ;
SmtpClient smtp
= new SmtpClient();
smtp.Credentials
= new NetworkCredential( " ***@gmail.com " , " " );
smtp.Host
= " smtp.gmail.com " ;
smtp.Port
= 587 ;
smtp.EnableSsl
= true ;
smtp.Send(mailMessage);
}

3. 메 일 발송 방법 을 호출 합 니 다.

  
List < EmailParam > listEmailParam = new List < EmailParam > ();

EmailParam param1
= new EmailParam();
param1.Type
= " {#AccountName} " ;
param1.Value
= " admin " ;
listEmailParam.Add(param1);

EmailParam param2
= new EmailParam();
param2.Type
= " {#Password} " ;
param2.Value
= " 123456 " ;
listEmailParam.Add(param2);

EmailParam param3
= new EmailParam();
param3.Type
= " {#Date} " ;
param3.Value
= DateTime.Now.ToShortDateString();
listEmailParam.Add(param3);

EmailHelper.Send(listEmailParam);

좋은 웹페이지 즐겨찾기