在mvc 3vb.net中动态输入预定义的电子邮件正文中的值



我正在编写一个mvc 3应用程序,其部分功能是发送确认电子邮件以及各种其他电子邮件。我有身体的不同类型的电子邮件存储在一个数据库表..使用System.Net.Mail从表中获取值并将其放入电子邮件正文中根本不是问题。我需要做的是在数据库表中以某种方式将某种变量标记放在正文中,然后以某种方式解析正文文本,当它放入电子邮件正文中以找到变量标记并将正确的值放在它的位置…有什么想法?目前为止的代码片段如下:

请记住,这将是一个相当大的主体,并且有一些地方的值将不得不在…我想让它像这样使用:

长邮件正文^^名称^^已被批准在^^日期^^在^^地点^^..的^^地点^^开始上课

当代码从正文中加载文本时,当它遇到标有^^的变量时,它会把正确的信息放在它的位置…

            Dim _content As email = db.emails.Where(Function(f) f.ref_name = "Confirmation")
            Dim _body As String = _content.email_body.ToString
            Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            mail.Subject = "Testing Confirmation"
            mail.To.Add("developer@myemail.com")
            mail.From = New MailAddress("myemail@myemail.com")
            mail.Body = _body

为什么不照你刚才说的去做呢?在数据库中,你的电子邮件模板应该是这样的:

Dear [[Name]],
This is just a sample message.

然后创建一个类来做替换:

Class EmailTemplateReplacer
   Public Function DoTheReplace(ByVal emailTemplate as String) as String
       return emailTemplate.Replace("[[Name]]", "whatever you want here")
   EndFunction
EndClass

然后在你的代码中调用它:

Dim _content As email = db.emails.Where(Function(f) f.ref_name = "Confirmation")
Dim _body As String = _content.email_body.ToString
Dim replacer as New EmailTemplateReplacer()
_body = replacer.DoTheReplace(_body)
Dim SmtpServer As New SmtpClient()
Dim mail As New MailMessage()
mail.Subject = "Testing Confirmation"
mail.To.Add("developer@myemail.com")
mail.From = New MailAddress("myemail@myemail.com")
mail.Body = _body

相关内容

  • 没有找到相关文章

最新更新