单击链接后,激活码不会显示在URL中

时间:2016-04-27 10:21:04

标签: asp.net email smtp

我发送一个链接使用电子邮件来创建密码但是在发送电子邮件中的链接时我附加了我的激活码也显示有链接但是当我点击链接时它没有显示虽然在调试中我正在获取链接激活码。以下是我在Body部分

中添加链接的代码
body+=@"<br /><a href='http://localhost:49234/Index.aspx?ActivationCode='"+objUserDetailsBE.ActivationCode+"'>Create a login to account</a>";

点击链接后我只能在浏览器中查看http://localhost:49234/Index.aspx?ActivationCode=请让我知道我在哪里做错了。 在评论中添加代码:

string emailAddress = txtEmailAddress.Text;
string subject = "Login Credentials For Nth Star";
string body = string.Format("Hello,");                        
body+=@"<br /><a href='http://localhost:49234/Index.aspx?ActivationCode='"+objUserDetailsBE.ActivationCode+"'>Create a login to account</a>";
Email.SendMail(objemail, emailAddress, subject, body, "");

以下是我的'SendMail'方法

public static bool SendMail(EmailConfigurationBE objEmailConfig, string toEmailAddresses, string subject, string body, string mailAttachments)
    {
        char[] splitter = { ';' };
        MailMessage mailMessage = new MailMessage();
        mailMessage.From = new MailAddress(objEmailConfig.Email);
        mailMessage.Subject = subject;
        mailMessage.Body = body;
        mailMessage.IsBodyHtml = true;
        mailMessage.Priority = MailPriority.High;
        string[] multi = toEmailAddresses.Split(';');
        string[] multipath = mailAttachments.Split(';');
        foreach (string MultiemailId in multi)
        {
            mailMessage.To.Add(new MailAddress(MultiemailId));
        }
        if (mailMessage.To.Count > 0)
        {
            //Adding Multiple Attachments
            if (mailAttachments != "")
            {
                foreach (string Multipath1 in multipath)
                {
                    Attachment attachFile = new Attachment(Multipath1);
                    mailMessage.Attachments.Add(attachFile);
                }

            }
            SmtpClient smtpClient = new SmtpClient();
            try
            {
                smtpClient.Host = objEmailConfig.SMTPServer;
                smtpClient.EnableSsl = EnableSsl;
                System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
                NetworkCred.UserName = objEmailConfig.Email;
                NetworkCred.Password =objEmailConfig.Password;
                smtpClient.UseDefaultCredentials = true;
                smtpClient.Credentials = NetworkCred;
                smtpClient.Port =Convert.ToInt32(objEmailConfig.PortNumber);
                smtpClient.Send(mailMessage);
                return true;
            }
            catch
            {

                mailMessage = null;
                smtpClient = null;
                return false;
            }
        }
        else
        {
            return false;
        }
    }

1 个答案:

答案 0 :(得分:1)

这看起来像一个简单的引用问题。看

<a href='http://localhost:49234/Index.aspx?ActivationCode='"+objUserDetailsBE.ActivationCode+"'

在这里,您在http之前有一个引用,在ActivationCode=之后有另一个引用,在结尾时有第三个引用。看起来像是多余的,这会打破你的标记。

正确版本:

body+=@"<br /><a href='http://localhost:49234/Index.aspx?ActivationCode="+objUserDetailsBE.ActivationCode+"'>Create a login to account</a>";

我做的唯一更改是在ActivationCode=之后删除单引号。

还要确保活动代码不包含引号或<>等符号,这些符号也会破坏标记。