使PHP变量具有html链接作为其值

使PHP变量具有html链接作为其值,php,html,email,hyperlink,Php,Html,Email,Hyperlink,我试图将一个html链接指定为php变量的值。就像这样,(我知道这是行不通的): $mlink=; 我正在尝试发送一封带有链接的电子邮件作为电子邮件的消息。我正在使用mail()来执行此操作。这是我发送邮件的脚本代码。这就是我想要使用$mlink变量的地方,该变量的值为html链接 <?php $to = $_POST['email1']; $subject = "Test mail"; $message = $mlink; $from = "somewhere@somewhere.co

我试图将一个html链接指定为php变量的值。就像这样,(我知道这是行不通的):

$mlink=;
我正在尝试发送一封带有链接的电子邮件作为电子邮件的消息。我正在使用mail()来执行此操作。这是我发送邮件的脚本代码。这就是我想要使用$mlink变量的地方,该变量的值为html链接

<?php
$to = $_POST['email1'];
$subject = "Test mail";
$message = $mlink;
$from = "somewhere@somewhere.com";
$headers = "From:" . $from;

if( mail($to, $subject, $message, $headers) )
{
    echo ("<p>Mail Sent!</p>");
}
else
{
    echo ("<p>Mail could not be sent!</p>");
}
?>

我正在调用此脚本的另一个脚本中分配$mlink的值。我也可以发布那个脚本。我只是不确定这是否必要

我似乎不知道该怎么做。我尝试过使用echo,但在变量赋值语句中使用echo时会出现错误。我尝试过其他一些方法,但它们要么给我一个错误,要么给我不想要的输出。我不知道如何使这项工作:(

非常感谢您的帮助。提前感谢您的启发!

注意:

正如在另一个答案中的评论所指出的,我提供了一些补充信息,OP可以研究如何做到这一点,以及如何实现这一点

如何使用HTML和纯文本发送多部分电子邮件:

  • 诀窍在于标题信息。你需要创建两份电子邮件副本,一份是纯文本,另一份是HTML格式
编辑(仅HTML格式的工作示例) 为了从网站(
WWW
)下载链接,这是一个
http
调用,首先需要分配服务器变量

<?php
$to = $_POST['email1'];
$subject = "Test mail";
$server = "http://www.example.com";
$mlink = "download.php";

$message = "

<html>
<head>
<title></title>
</head>
<body>

<a href=\"$server/$mlink\">Download Link</a>

</body>
</html>

";

$from = "somewhere@somewhere.com";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From:" . $from;

if( mail($to, $subject, $message, $headers) )
{
    echo ("<p>Mail Sent!</p>");
}
else
{
    echo ("<p>Mail could not be sent!</p>");
}
?>


原始答案 以下是一个示例(不用于发送电子邮件,但仅在网站上):


要发送HTML邮件,必须设置内容类型标题内容类型:text/HTML。 这样,您的代码将被解释为html代码,而不是纯文本:

 <?php

 $mlink = "download.php";

 $to = $_POST['email1'];
 $subject = "Test mail";
 $message = "<a href=" . $mlink . ">Download Link</a>";
 $from = "somewhere@somewhere.com";

 // To send HTML mail, the Content-type header must be set
 $headers = "MIME-Version: 1.0" . "\r\n";
 $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
 $headers .= "From:" . $from;

 if( mail($to, $subject, $message, $headers) )
 {
     echo ("<p>Mail Sent!</p>");
 }
 else 
 {
     echo ("<p>Mail could not be sent!</p>");
 } 
 ?>


试试
$mlink=“”;
或$mlink=“”;与其给一个人一条鱼吃,不如教他如何捕鱼。你在寻找“线”,你可以在这里了解他们:谢谢大家的回复!我刚参加完一个工作会议。我将很快测试我的项目,看看我是否正确地实施了解决方案。我还有很多东西要学。我非常感谢你们的帮助。我会在服务器上测试后尽快发回。我一定会研究你的p在所有发布的链接上,因为我希望能够捕捉到我自己的鱼!:)我正在使用xampp,并在没有邮件服务器的localhost上进行测试。它将“电子邮件”作为文本文件发送到xampp目录中的mailoutput文件夹,因此它将所有内容解释为严格的文本。我想这是我困惑自己的原因之一,当然还有我的无知!他应该使用一个MIME电子邮件类并发送一个包含HTML和文本的类。没有什么比只使用HTML的电子邮件更糟糕的了……他对字符串的概念缺乏理解是最大的问题,但这是一个正确的观点。他说他尝试了很多解决方案,可能这就是原因,不管怎么说,这个答案涵盖了两个问题,链接和内容-type@FaceOfJock无论是HTML格式还是纯文本格式,电子邮件中都需要包含
http
。“电子邮件”不知道文件来自何处或驻留在何处,因此是一个服务器,即:
http://www.example.com
需要定义。
<?php

$mlink = "download.php";

echo "<a href='$mlink'>Download Link</a>";

echo "<br>";

echo "<a href='$mlink'>$mlink</a>"; // displays file name

?>
 <?php

 $mlink = "download.php";

 $to = $_POST['email1'];
 $subject = "Test mail";
 $message = "<a href=" . $mlink . ">Download Link</a>";
 $from = "somewhere@somewhere.com";

 // To send HTML mail, the Content-type header must be set
 $headers = "MIME-Version: 1.0" . "\r\n";
 $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
 $headers .= "From:" . $from;

 if( mail($to, $subject, $message, $headers) )
 {
     echo ("<p>Mail Sent!</p>");
 }
 else 
 {
     echo ("<p>Mail could not be sent!</p>");
 } 
 ?>