Hello, I have been using the smtp library lately and i noticed that it does not natively support html emails. So i did so research myself and in short i ended up adding some headers to the smtp request. The html mail gets sent but some html tags are not rendered like img, svg and a tags, so does anyone have a work around on how to send html mail that will in fact render appropriately using the nim smtp library. This is the code proc sendRecoveryMail*(username, domain: string) : Future[bool] {.async.} = let logger = newConsoleLogger() logger.log(lvlInfo, "Sending password reset link as requested by user $1".format([username])) try: let userinfo = db.getRow(sql"SELECT email, userid FROM user WHERE username = ? OR email = ?;", username, username) sitemailinfo = db.getRow(sql"SELECT mailaddress, mailusername, mailpassword FROM site WHERE id = 1;") if sitemailinfo[0].isEmptyOrWhitespace or sitemailinfo[1].isEmptyOrWhitespace or sitemailinfo[2].isEmptyOrWhitespace: logger.log(lvlInfo, "Some mail info are unset") return false randomize() var mailhtml = mailhtml(username, $(parseUri(domain) / "resetpassword" / $((username & $epochTime() & $rand(9999)).toMD5) / userinfo[1])) let mail = createMessage( "PassWord Recovery Mail Movestuff", mailhtml, @[userinfo[0]], @[sitemailinfo[0]], otherHeaders = @[ ("MIME-Version", "1.0"), ("Content-Type", "text/html; charset=\"utf-8\""), ("Content-Transfer-Encoding", "quoted-printable") ]) smtpConn = newAsyncSmtp(useSsl = true, debug=true) await smtpConn.connect("smtp.gmail.com", Port 465) await smtpConn.auth(sitemailinfo[1], sitemailinfo[2]) await smtpConn.sendmail(sitemailinfo[0], @[userinfo[0]], $mail) await smtpConn.close() logger.log(lvlInfo, "Password reset mail sent to $1".format([userinfo[0]])) return true except: logger.log(lvlError, "Failed to send reset mail") return false Run