将$ _POST ['url']添加到电子邮件Pear包的正文中?

时间:2016-02-23 16:50:24

标签: php email pear

我需要我的php脚本给我发一些解析它的变量。

我在传递任何文字时正确收到电子邮件:

mypage.php?url=hello

但如果传递了网址,我就不会收到电子邮件:

mypage.php?url=http://www.google.com

我搜索了几个小时,但没有找到任何办法。

这是php脚本:

<?php
// Pear Mail Library
require_once "Mail.php";


$name = $_POST['name'];
$url = $_POST['url'];



$from = '<noreply@website.com>';
$to = '<me@gmail.com>';
$subject = 'Hi!';
$body = '


Name: '.$name.'
The url is: '.$url.'


';

            
$headers = array(
    'From' => $from,
    'To' => $to,
    'Subject' => $subject
);



$smtp = Mail::factory('smtp', array(
        'host' => 'ssl://smtp.gmail.com',
        'port' => '465',
        'auth' => true,
        'username' => 'mail@gmail.com',
        'password' => 'password'
    ));


$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    echo('<p>' . $mail->getMessage() . '</p>');
} else {
    echo('<h1>Message successfully sent!</h1>');
}

?>

解析实际网址时,我不会收到该电子邮件,但也不会显示错误。

1 个答案:

答案 0 :(得分:0)

正如@Xorifelse所说,我使用了addslashes函数并且它有效。我收到了正确的电子邮件,其中包含了网址。

以下是工作脚本:

<?php
// Pear Mail Library
require_once "Mail.php";


$name = $_POST['name'];
$url = $_POST['url'];



$from = '<noreply@website.com>';
$to = '<me@gmail.com>';
$subject = 'Hi!';
$body = '


Name: '.addslashes($name).'
The url is: '.addslashes($url).'


';

            
$headers = array(
    'From' => $from,
    'To' => $to,
    'Subject' => $subject
);



$smtp = Mail::factory('smtp', array(
        'host' => 'ssl://smtp.gmail.com',
        'port' => '465',
        'auth' => true,
        'username' => 'mail@gmail.com',
        'password' => 'password'
    ));


$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    echo('<p>' . $mail->getMessage() . '</p>');
} else {
    echo('<h1>Message successfully sent!</h1>');
}

?>