package email

import (
	"context"
	"encoding/base64"
	"fmt"
	"strings"

	"donetick.com/core/config"
	gomail "gopkg.in/gomail.v2"
)

type EmailSender struct {
	client  *gomail.Dialer
	appHost string
}

func NewEmailSender(conf *config.Config) *EmailSender {

	client := gomail.NewDialer(conf.EmailConfig.Host, conf.EmailConfig.Port, conf.EmailConfig.Email, conf.EmailConfig.Key)

	// format conf.EmailConfig.Host and port :

	// auth := smtp.PlainAuth("", conf.EmailConfig.Email, conf.EmailConfig.Password, host)
	return &EmailSender{

		client:  client,
		appHost: conf.EmailConfig.AppHost,
	}
}

func (es *EmailSender) SendVerificationEmail(to, code string) error {
	// msg := []byte(fmt.Sprintf("To: %s\r\nSubject: %s\r\n\r\n%s\r\n", to, subject, body))
	msg := gomail.NewMessage()
	msg.SetHeader("From", "no-reply@donetick.com")
	msg.SetHeader("To", to)
	msg.SetHeader("Subject", "Welcome to Donetick! Verifiy you email")
	// text/html for a html email
	htmlBody := `
	<!--
	********************************************************
	* This email was built using Tabular.
	* Create emails, that look perfect in every inbox.
	* For more information, visit https://tabular.email
	********************************************************
	-->
	<!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" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" lang="en"><head>
		<title></title>
		<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
		<!--[if !mso]><!-->
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<!--<![endif]-->
		<meta name="x-apple-disable-message-reformatting" content="">
		<meta content="target-densitydpi=device-dpi" name="viewport">
		<meta content="true" name="HandheldFriendly">
		<meta content="width=device-width" name="viewport">
		<meta name="format-detection" content="telephone=no, date=no, address=no, email=no, url=no">
		<style type="text/css">
		table {
		border-collapse: separate;
		table-layout: fixed;
		mso-table-lspace: 0pt;
		mso-table-rspace: 0pt
		}
		table td {
		border-collapse: collapse
		}
		.ExternalClass {
		width: 100%
		}
		.ExternalClass,
		.ExternalClass p,
		.ExternalClass span,
		.ExternalClass font,
		.ExternalClass td,
		.ExternalClass div {
		line-height: 100%
		}
		body, a, li, p, h1, h2, h3 {
		-ms-text-size-adjust: 100%;
		-webkit-text-size-adjust: 100%;
		}
		html {
		-webkit-text-size-adjust: none !important
		}
		body, #innerTable {
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale
		}
		#innerTable img+div {
		display: none;
		display: none !important
		}
		img {
		Margin: 0;
		padding: 0;
		-ms-interpolation-mode: bicubic
		}
		h1, h2, h3, p, a {
		line-height: 1;
		overflow-wrap: normal;
		white-space: normal;
		word-break: break-word
		}
		a {
		text-decoration: none
		}
		h1, h2, h3, p {
		min-width: 100%!important;
		width: 100%!important;
		max-width: 100%!important;
		display: inline-block!important;
		border: 0;
		padding: 0;
		margin: 0
		}
		a[x-apple-data-detectors] {
		color: inherit !important;
		text-decoration: none !important;
		font-size: inherit !important;
		font-family: inherit !important;
		font-weight: inherit !important;
		line-height: inherit !important
		}
		a[href^="mailto"],
		a[href^="tel"],
		a[href^="sms"] {
		color: inherit;
		text-decoration: none
		}
		@media (min-width: 481px) {
		.hd { display: none!important }
		}
		@media (max-width: 480px) {
		.hm { display: none!important }
		}
		[style*="Inter Tight"] {font-family: 'Inter Tight', BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif !important;} [style*="Albert Sans"] {font-family: 'Albert Sans', BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif !important;}
		@media only screen and (min-width: 481px) {.t20{width:720px!important}.t27{padding:40px 60px 50px!important}.t29{padding:40px 60px 50px!important;width:680px!important}.t43{width:600px!important}.t53,.t61{width:580px!important}.t65{width:600px!important}.t78{padding-left:0!important;padding-right:0!important}.t80{padding-left:0!important;padding-right:0!important;width:400px!important}.t84,.t94{width:600px!important}}
		</style>
		<style type="text/css" media="screen and (min-width:481px)">.moz-text-html .t20{width:720px!important}.moz-text-html .t27{padding:40px 60px 50px!important}.moz-text-html .t29{padding:40px 60px 50px!important;width:680px!important}.moz-text-html .t43{width:600px!important}.moz-text-html .t53,.moz-text-html .t61{width:580px!important}.moz-text-html .t65{width:600px!important}.moz-text-html .t78{padding-left:0!important;padding-right:0!important}.moz-text-html .t80{padding-left:0!important;padding-right:0!important;width:400px!important}.moz-text-html .t84,.moz-text-html .t94{width:600px!important}</style>
		<!--[if !mso]><!-->
		<link href="https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;600&amp;family=Albert+Sans:wght@800&amp;display=swap" rel="stylesheet" type="text/css">
		<!--<![endif]-->
		<!--[if mso]>
		<style type="text/css">
		td.t20{width:800px !important}td.t27{padding:40px 60px 50px !important}td.t29{padding:40px 60px 50px !important;width:800px !important}td.t43,td.t53{width:600px !important}td.t61{width:580px !important}td.t65{width:600px !important}td.t78,td.t80{padding-left:0 !important;padding-right:0 !important}td.t84,td.t94{width:600px !important}
		</style>
		<![endif]-->
		<!--[if mso]>
		<xml>
		<o:OfficeDocumentSettings>
		<o:AllowPNG/>
		<o:PixelsPerInch>96</o:PixelsPerInch>
		</o:OfficeDocumentSettings>
		</xml>
		<![endif]-->
		</head>
		<body class="t0" style="min-width:100%;Marg
		if you did not sign up with Donetick please Ignore this email. in:0px;padding:0px;background-color:#FFFFFF;"><div class="t1" style="background-color:#FFFFFF;"><table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" align="center"><tbody><tr><td class="t130" style="font-size:0;line-height:0;mso-line-height-rule:exactly;" valign="top" align="center">
		<!--[if mso]>
		<v:background xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false">
		<v:fill color="#FFFFFF"/>
		</v:background>
		<![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" align="center" id="innerTable"><tbody><tr><td>
		<table class="t118" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
	
		<!--<![endif]-->
		<!--[if mso]><td class="t119" style="width:400px;padding:40px 40px 40px 40px;"><![endif]-->
		</tr></tbody></table><table role="presentation" width="100%" cellpadding="0" cellspacing="0"></table></td>
		</tr></tbody></table>
		</td></tr><tr><td>
		<table class="t10" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t11" style="background-color:#FFFFFF;width:400px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t11" style="background-color:#FFFFFF;width:400px;"><![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td>
		<table class="t19" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t20" style="background-color:#404040;width:400px;padding:40px 40px 40px 40px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t20" style="background-color:#404040;width:480px;padding:40px 40px 40px 40px;"><![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td>
		<table class="t103" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t104" style="width:200px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t104" style="width:200px;"><![endif]-->
		<div style="font-size:0px;"><img class="t110" style="display:block;border:0;height:auto;width:100%;Margin:0;max-width:100%;" width="200" height="179.5" alt="" src="https://835a1b8e-557a-4713-8f1c-104febdb8808.b-cdn.net/e/30b4288c-4e67-4e3b-9527-1fc4c4ec2fdf/df3f012a-c060-4d59-b5fd-54a57dae1916.png"></div></td>
		</tr></tbody></table>
		</td></tr></tbody></table></td>
		</tr></tbody></table>
		</td></tr><tr><td>
		<table class="t28" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t29" style="width:420px;padding:30px 30px 40px 30px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t29" style="width:480px;padding:30px 30px 40px 30px;"><![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td>
		<table class="t42" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t43" style="width:480px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t43" style="width:480px;"><![endif]-->
		<h1 class="t49" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Albert Sans';line-height:35px;font-weight:800;font-style:normal;font-size:30px;text-decoration:none;text-transform:none;letter-spacing:-1.2px;direction:ltr;color:#333333;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">Welcome to Donetick!</h1></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t41" style="mso-line-height-rule:exactly;mso-line-height-alt:16px;line-height:16px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td><p class="t39" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:21px;font-weight:400;font-style:normal;font-size:14px;text-decoration:none;text-transform:none;direction:ltr;color:#555555;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">Thank you for joining us. We're excited to have you on board.To complete your registration, click the button below</p></td></tr><tr><td><div class="t31" style="mso-line-height-rule:exactly;mso-line-height-alt:30px;line-height:30px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td>
		<table class="t52" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t53" style="background-color:#06b6d4;overflow:hidden;width:460px;text-align:center;line-height:24px;mso-line-height-rule:exactly;mso-text-raise:2px;padding:10px 10px 10px 10px;border-radius:10px 10px 10px 10px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t53" style="background-color:#06b6d4;overflow:hidden;width:480px;text-align:center;line-height:24px;mso-line-height-rule:exactly;mso-text-raise:2px;padding:10px 10px 10px 10px;border-radius:10px 10px 10px 10px;"><![endif]-->
		<a class="t59" href="{{verifyURL}}" style="display:block;margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:24px;font-weight:600;font-style:normal;font-size:16px;text-decoration:none;direction:ltr;color:#FFFFFF;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;" target="_blank">Complete your registration</a></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t62" style="mso-line-height-rule:exactly;mso-line-height-alt:12px;line-height:12px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td>
		<table class="t64" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t65" style="width:480px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t65" style="width:480px;"><![endif]-->
		<p class="t71" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:21px;font-weight:400;font-style:normal;font-size:14px;text-decoration:none;text-transform:none;direction:ltr;color:#555555;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">&nbsp;</p></td>
		</tr></tbody></table>
		</td></tr></tbody></table></td>
		</tr></tbody></table>
		</td></tr></tbody></table></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t4" style="mso-line-height-rule:exactly;mso-line-height-alt:30px;line-height:30px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td>
		<table class="t79" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t80" style="width:320px;padding:0 40px 0 40px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t80" style="width:400px;padding:0 40px 0 40px;"><![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td>
		<table class="t93" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t94" style="width:480px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t94" style="width:480px;"><![endif]-->
		<p class="t100" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:18px;font-weight:400;font-style:normal;font-size:12px;text-decoration:none;text-transform:none;direction:ltr;color:#555555;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">if you did not sign up with Donetick please Ignore this email. </p></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t81" style="mso-line-height-rule:exactly;mso-line-height-alt:8px;line-height:8px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td>
		<table class="t83" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t84" style="width:480px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t84" style="width:480px;"><![endif]-->
		<p class="t90" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:18px;font-weight:400;font-style:normal;font-size:12px;text-decoration:none;text-transform:none;direction:ltr;color:#555555;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">Favoro LLC. All rights reserved</p></td>
		</tr></tbody></table>
		</td></tr></tbody></table></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t73" style="mso-line-height-rule:exactly;mso-line-height-alt:100px;line-height:100px;font-size:1px;display:block;">&nbsp;</div></td></tr></tbody></table></div>
		
	</body></html>
`
	u := es.appHost + "/verify?c=" + encodeEmailAndCode(to, code)
	htmlBody = strings.Replace(htmlBody, "{{verifyURL}}", u, 1)

	msg.SetBody("text/html", htmlBody)

	err := es.client.DialAndSend(msg)
	if err != nil {
		return err
	}
	return nil

}

func (es *EmailSender) SendResetPasswordEmail(c context.Context, to, code string) error {
	msg := gomail.NewMessage()
	msg.SetHeader("From", "no-reply@donetick.com")
	msg.SetHeader("To", to)
	msg.SetHeader("Subject", "Donetick! Password Reset")
	htmlBody := `
	<!--
	********************************************************
	* This email was built using Tabular.
	* Create emails, that look perfect in every inbox.
	* For more information, visit https://tabular.email
	********************************************************
	-->
	<!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" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" lang="en"><head>
		<title></title>
		<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
		<!--[if !mso]><!-->
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<!--<![endif]-->
		<meta name="x-apple-disable-message-reformatting" content="">
		<meta content="target-densitydpi=device-dpi" name="viewport">
		<meta content="true" name="HandheldFriendly">
		<meta content="width=device-width" name="viewport">
		<meta name="format-detection" content="telephone=no, date=no, address=no, email=no, url=no">
		<style type="text/css">
		table {
		border-collapse: separate;
		table-layout: fixed;
		mso-table-lspace: 0pt;
		mso-table-rspace: 0pt
		}
		table td {
		border-collapse: collapse
		}
		.ExternalClass {
		width: 100%
		}
		.ExternalClass,
		.ExternalClass p,
		.ExternalClass span,
		.ExternalClass font,
		.ExternalClass td,
		.ExternalClass div {
		line-height: 100%
		}
		body, a, li, p, h1, h2, h3 {
		-ms-text-size-adjust: 100%;
		-webkit-text-size-adjust: 100%;
		}
		html {
		-webkit-text-size-adjust: none !important
		}
		body, #innerTable {
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale
		}
		#innerTable img+div {
		display: none;
		display: none !important
		}
		img {
		Margin: 0;
		padding: 0;
		-ms-interpolation-mode: bicubic
		}
		h1, h2, h3, p, a {
		line-height: 1;
		overflow-wrap: normal;
		white-space: normal;
		word-break: break-word
		}
		a {
		text-decoration: none
		}
		h1, h2, h3, p {
		min-width: 100%!important;
		width: 100%!important;
		max-width: 100%!important;
		display: inline-block!important;
		border: 0;
		padding: 0;
		margin: 0
		}
		a[x-apple-data-detectors] {
		color: inherit !important;
		text-decoration: none !important;
		font-size: inherit !important;
		font-family: inherit !important;
		font-weight: inherit !important;
		line-height: inherit !important
		}
		a[href^="mailto"],
		a[href^="tel"],
		a[href^="sms"] {
		color: inherit;
		text-decoration: none
		}
		@media (min-width: 481px) {
		.hd { display: none!important }
		}
		@media (max-width: 480px) {
		.hm { display: none!important }
		}
		[style*="Inter Tight"] {font-family: 'Inter Tight', BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif !important;} [style*="Albert Sans"] {font-family: 'Albert Sans', BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif !important;}
		@media only screen and (min-width: 481px) {.t20{width:720px!important}.t27{padding:40px 60px 50px!important}.t29{padding:40px 60px 50px!important;width:680px!important}.t43{width:600px!important}.t53,.t61{width:580px!important}.t65{width:600px!important}.t78{padding-left:0!important;padding-right:0!important}.t80{padding-left:0!important;padding-right:0!important;width:400px!important}.t84,.t94{width:600px!important}}
		</style>
		<style type="text/css" media="screen and (min-width:481px)">.moz-text-html .t20{width:720px!important}.moz-text-html .t27{padding:40px 60px 50px!important}.moz-text-html .t29{padding:40px 60px 50px!important;width:680px!important}.moz-text-html .t43{width:600px!important}.moz-text-html .t53,.moz-text-html .t61{width:580px!important}.moz-text-html .t65{width:600px!important}.moz-text-html .t78{padding-left:0!important;padding-right:0!important}.moz-text-html .t80{padding-left:0!important;padding-right:0!important;width:400px!important}.moz-text-html .t84,.moz-text-html .t94{width:600px!important}</style>
		<!--[if !mso]><!-->
		<link href="https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;600&amp;family=Albert+Sans:wght@800&amp;display=swap" rel="stylesheet" type="text/css">
		<!--<![endif]-->
		<!--[if mso]>
		<style type="text/css">
		td.t20{width:800px !important}td.t27{padding:40px 60px 50px !important}td.t29{padding:40px 60px 50px !important;width:800px !important}td.t43,td.t53{width:600px !important}td.t61{width:580px !important}td.t65{width:600px !important}td.t78,td.t80{padding-left:0 !important;padding-right:0 !important}td.t84,td.t94{width:600px !important}
		</style>
		<![endif]-->
		<!--[if mso]>
		<xml>
		<o:OfficeDocumentSettings>
		<o:AllowPNG/>
		<o:PixelsPerInch>96</o:PixelsPerInch>
		</o:OfficeDocumentSettings>
		</xml>
		<![endif]-->
		</head>
		<body class="t0" style="min-width:100%;Marg
		if you did not sign up with Donetick please Ignore this email. in:0px;padding:0px;background-color:#FFFFFF;"><div class="t1" style="background-color:#FFFFFF;"><table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" align="center"><tbody><tr><td class="t130" style="font-size:0;line-height:0;mso-line-height-rule:exactly;" valign="top" align="center">
		<!--[if mso]>
		<v:background xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false">
		<v:fill color="#FFFFFF"/>
		</v:background>
		<![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" align="center" id="innerTable"><tbody><tr><td>
		<table class="t118" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
	
		<!--<![endif]-->
		<!--[if mso]><td class="t119" style="width:400px;padding:40px 40px 40px 40px;"><![endif]-->
		</tr></tbody></table><table role="presentation" width="100%" cellpadding="0" cellspacing="0"></table></td>
		</tr></tbody></table>
		</td></tr><tr><td>
		<table class="t10" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t11" style="background-color:#FFFFFF;width:400px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t11" style="background-color:#FFFFFF;width:400px;"><![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td>
		<table class="t19" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t20" style="background-color:#404040;width:400px;padding:40px 40px 40px 40px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t20" style="background-color:#404040;width:480px;padding:40px 40px 40px 40px;"><![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td>
		<table class="t103" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t104" style="width:200px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t104" style="width:200px;"><![endif]-->
		<div style="font-size:0px;"><img class="t110" style="display:block;border:0;height:auto;width:100%;Margin:0;max-width:100%;" width="200" height="179.5" alt="" src="https://835a1b8e-557a-4713-8f1c-104febdb8808.b-cdn.net/e/30b4288c-4e67-4e3b-9527-1fc4c4ec2fdf/df3f012a-c060-4d59-b5fd-54a57dae1916.png"></div></td>
		</tr></tbody></table>
		</td></tr></tbody></table></td>
		</tr></tbody></table>
		</td></tr><tr><td>
		<table class="t28" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t29" style="width:420px;padding:30px 30px 40px 30px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t29" style="width:480px;padding:30px 30px 40px 30px;"><![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td>
		<table class="t42" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t43" style="width:480px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t43" style="width:480px;"><![endif]-->
		<h1 class="t49" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Albert Sans';line-height:35px;font-weight:800;font-style:normal;font-size:30px;text-decoration:none;text-transform:none;letter-spacing:-1.2px;direction:ltr;color:#333333;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">Someone forgot their password 😔</h1></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t41" style="mso-line-height-rule:exactly;mso-line-height-alt:16px;line-height:16px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td><p class="t39" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:21px;font-weight:400;font-style:normal;font-size:14px;text-decoration:none;text-transform:none;direction:ltr;color:#555555;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">We have received a password reset request for this email address. If you initiated this request, please click the button below to reset your password. Otherwise, you may safely ignore this email.</p></td></tr><tr><td><div class="t31" style="mso-line-height-rule:exactly;mso-line-height-alt:30px;line-height:30px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td>
		<table class="t52" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t53" style="background-color:#06b6d4;overflow:hidden;width:460px;text-align:center;line-height:24px;mso-line-height-rule:exactly;mso-text-raise:2px;padding:10px 10px 10px 10px;border-radius:10px 10px 10px 10px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t53" style="background-color:#06b6d4;overflow:hidden;width:480px;text-align:center;line-height:24px;mso-line-height-rule:exactly;mso-text-raise:2px;padding:10px 10px 10px 10px;border-radius:10px 10px 10px 10px;"><![endif]-->
		<a class="t59" href="{{verifyURL}}" style="display:block;margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:24px;font-weight:600;font-style:normal;font-size:16px;text-decoration:none;direction:ltr;color:#FFFFFF;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;" target="_blank">Reset your Password</a></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t62" style="mso-line-height-rule:exactly;mso-line-height-alt:12px;line-height:12px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td>
		<table class="t64" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t65" style="width:480px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t65" style="width:480px;"><![endif]-->
		<p class="t71" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:21px;font-weight:400;font-style:normal;font-size:14px;text-decoration:none;text-transform:none;direction:ltr;color:#555555;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">&nbsp;</p></td>
		</tr></tbody></table>
		</td></tr></tbody></table></td>
		</tr></tbody></table>
		</td></tr></tbody></table></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t4" style="mso-line-height-rule:exactly;mso-line-height-alt:30px;line-height:30px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td>
		<table class="t79" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t80" style="width:320px;padding:0 40px 0 40px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t80" style="width:400px;padding:0 40px 0 40px;"><![endif]-->
		<table role="presentation" width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td>
		<table class="t93" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t94" style="width:480px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t94" style="width:480px;"><![endif]-->
		<p class="t100" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:18px;font-weight:400;font-style:normal;font-size:12px;text-decoration:none;text-transform:none;direction:ltr;color:#555555;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">if you did not sign up with Donetick please Ignore this email. </p></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t81" style="mso-line-height-rule:exactly;mso-line-height-alt:8px;line-height:8px;font-size:1px;display:block;">&nbsp;</div></td></tr><tr><td>
		<table class="t83" role="presentation" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
		<!--[if !mso]><!--><td class="t84" style="width:480px;">
		<!--<![endif]-->
		<!--[if mso]><td class="t84" style="width:480px;"><![endif]-->
		<p class="t90" style="margin:0;Margin:0;font-family:BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,'Inter Tight';line-height:18px;font-weight:400;font-style:normal;font-size:12px;text-decoration:none;text-transform:none;direction:ltr;color:#555555;text-align:center;mso-line-height-rule:exactly;mso-text-raise:2px;">Favoro LLC. All rights reserved</p></td>
		</tr></tbody></table>
		</td></tr></tbody></table></td>
		</tr></tbody></table>
		</td></tr><tr><td><div class="t73" style="mso-line-height-rule:exactly;mso-line-height-alt:100px;line-height:100px;font-size:1px;display:block;">&nbsp;</div></td></tr></tbody></table></div>
		
	</body></html>
`
	u := es.appHost + "/password/update?c=" + encodeEmailAndCode(to, code)

	// logging.FromContext(c).Infof("Reset password URL: %s", u)
	htmlBody = strings.Replace(htmlBody, "{{verifyURL}}", u, 1)

	msg.SetBody("text/html", htmlBody)

	err := es.client.DialAndSend(msg)
	if err != nil {
		return err
	}
	return nil

}

// func (es *EmailSender) SendFeedbackRequestEmail(to, code string) error {
// 	// msg := []byte(fmt.Sprintf("To: %s\r\nSubject: %s\r\n\r\n%s\r\n", to, subject, body))
// 	msg := gomail.NewMessage()

// }
func encodeEmailAndCode(email, code string) string {
	data := email + ":" + code
	return base64.StdEncoding.EncodeToString([]byte(data))
}

func DecodeEmailAndCode(encoded string) (string, string, error) {
	data, err := base64.StdEncoding.DecodeString(encoded)
	if err != nil {
		return "", "", err
	}
	parts := string(data)
	split := strings.Split(parts, ":")
	if len(split) != 2 {
		return "", "", fmt.Errorf("Invalid format")
	}
	return split[0], split[1], nil
}
