如何在php中设置已发送到邮件的url以及应该重定向到另一个url的链接
我有发送到给定电子邮件的URL。但是,我希望用户单击该URL时被重定向到另一个URL 我尝试了下面的代码来发送邮件,但我不知道如何创建一个URL,它将重定向到另一个页面如何在php中设置已发送到邮件的url以及应该重定向到另一个url的链接,php,mysql,email,url,redirect,Php,Mysql,Email,Url,Redirect,我有发送到给定电子邮件的URL。但是,我希望用户单击该URL时被重定向到另一个URL 我尝试了下面的代码来发送邮件,但我不知道如何创建一个URL,它将重定向到另一个页面 <?php $send_link=getLink("http://www.google.com",array("referral"=>"123","mobilenumber"=>"1234")); echo $send_link; function getLink($url,$params=array()
<?php
$send_link=getLink("http://www.google.com",array("referral"=>"123","mobilenumber"=>"1234"));
echo $send_link;
function getLink($url,$params=array(),$use_existing_arguments=false)
{
if($use_existing_arguments) $params = $params + $_GET;
if(!$params) return $url;
$link = $url;
if(strpos($link,'?') === false) $link .= '?';
//If there is no '?' add one at the end
elseif(!preg_match('/(\?|\&(amp;)?)$/',$link)) $link .= '&';
//If there is no '&' at the END, add one.
$params_arr = array();
foreach($params as $key=>$value)
{
if(gettype($value) == 'array')
{
//Handle array data properly
foreach($value as $val)
{
$params_arr[] = $key . '[]=' . urlencode($val);
}
}
else
{
$params_arr[] = $key . '=' . urlencode($value);
}
}
$link .= implode('&',$params_arr);
return $link;
}
$user_id='1';
$get_referred_user=mysqli_query($con,"select * from Phone_Book_Email where contact_id='$user_id'");
if (mysqli_num_rows($get_referred_user) > 0)
{
while($row = mysqli_fetch_assoc($get_referred_user))
{
$email_id=$row['email_id'];
echo $email_id;
$to = $email_id;
$subject = 'test';
$message = 'URL- '.$send_link;
$headers = 'From: Hubster@hubster.com' . "\r\n" . 'Reply-To: Hubster@hubster.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
//header("Location:http://www.facebook.com");
//header("refresh: $time_in_seconds; url=http://www.facebook.com");
}
}
?>
要使一个链接指向另一个地址,您必须在电子邮件HTML标记中使用 这意味着在电子邮件的标题中,您还应使用:
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
而在您的邮件中,您可以简单地使用HTML标记:
<HTML><BODY><A HREF="$link_a">$link_b</A></BODY></HTML>
您还可以参考此处提供的信息:
老实说,你需要的东西很简单
<a href="http://facebook.com">google.com</a>
因此,在本例中,它将以
href
链接的形式向您显示google.com,但当您单击它时,您将转到facebook。您的意思是,您希望在消息中显示一个链接,并在单击链接时在浏览器中打开另一个地址吗?或者你想将HTTP请求从一个地址重定向到另一个地址?嘿@Abdael5谢谢你的回复..你说得对,我想点击一下显示在消息中,该链接应该重定向到另一个链接上…这两个链接都在你的服务器上吗?不@Akshay,我只是在尝试另一个链接,第一个链接是www.google.com,第二个链接是www.facebook.com。@Neha
类似的东西吗?嘿@Abdel5,我已经试过你的代码了,应该是这样的,只是没有$to=$email\u id$主题=‘测试’$消息='URL-'。“”$标题='来自:Hubster@hubster.com' . “\r\n”。”答复:Hubster@hubster.com' . “\r\n”。”X-Mailer:PHP/”。phpversion()$标题。=“MIME版本:1.0\r\n”$标题。=“内容类型:text/html;字符集=ISO-8859-1\r\n”;邮件($to、$subject、$message、$headers);请删除更新回复中显示的{}标记。嘿@Abdel5如果我使用的是您建议我使用的$headers,邮件不会通过电子邮件发送,但是如果我使用的是没有$headers的邮件发送,邮件发送。我已经尝试了您的更新代码,邮件正在发送,该链接看起来像这样..>这可能是因为在“X-Mailer:PHP/”之后。phpversion()'您应该有“\r\n”。它应该是这样的编号$消息='URL-';嘿@Akshay,我已经试过你的代码了我在邮件中收到的消息是这样的
$message = "URL- "."<A HREF=\"$send_link\">$link_b</A>";
$message = "URL- "."<A HREF=\"".$send_link."\">".$link_b."</A>";
$to = $email_id;
$subject = 'test';
$send_link = 'http://google.com';
$link_b = 'http://facebook.com';
$message = "URL- "."<A HREF=\"".$send_link."\">".$link_b."</A>";
$headers = 'From: Hubster@hubster.com' . "\r\n" .
'Reply-To: Hubster@hubster.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion()."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to, $subject, $message, $headers);
<a href="http://facebook.com">google.com</a>