Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与$mail一起发布->;PHPMailer中的主体_Php_Email - Fatal编程技术网

与$mail一起发布->;PHPMailer中的主体

与$mail一起发布->;PHPMailer中的主体,php,email,Php,Email,这里的初学者 我已经检查了论坛以找出答案,但我没有成功,其他问题是专门针对PHPMailer的某些部分的,但我的问题更一般。所以,我希望没有人会像我在学习曲线中一样把我的问题标记为重复 我正在从事一个PHP项目。它的工作原理是用户进入页面,在表单(文本编辑器)中编写一些注释,然后单击send按钮。我能在电子邮件中收到他的信息。我已经设置了密码和主机空的明显原因,但后来它将是我的真正的电子邮件与我自己的域 这里有两个问题: 我不想发送带有$mail->body的静态正文,但我希望程序获取用户的消

这里的初学者

我已经检查了论坛以找出答案,但我没有成功,其他问题是专门针对PHPMailer的某些部分的,但我的问题更一般。所以,我希望没有人会像我在学习曲线中一样把我的问题标记为重复

我正在从事一个PHP项目。它的工作原理是用户进入页面,在表单(文本编辑器)中编写一些注释,然后单击send按钮。我能在电子邮件中收到他的信息。我已经设置了密码和主机空的明显原因,但后来它将是我的真正的电子邮件与我自己的域

这里有两个问题:

  • 我不想发送带有$mail->body的静态正文,但我希望程序获取用户的消息、名称和电子邮件地址,并将该消息发送到我的电子邮件
  • 当我收到电子邮件时,我看不到发件人的姓名和电子邮件,这意味着程序无法从会话中获取电子邮件和用户姓名
请给出您的建议或示例代码。多谢各位

if($_POST['mode']=='send'){

    $mail = new PHPMailer();

    $mail->IsSMTP();                                // telling the class to use SMTP
    $mail->Host     = "myhost";                     // SMTP server
                                                    //$mail->SMTPSecure = 'ssl';
    $mail->From     = "my email";
    $mail->port     = '26';                             // can also change to 465
    $mail->SMTPAuth = true; 
    $mail->Username= "my email"; 
    $mail->Password = "my password"; 

    $mail->AddAddress("my email");

    $Name = mysql_real_escape_string($_POST['part_fname']);    //this code is not getting the name and email
    $Email = mysql_real_escape_string($_POST['part_email']);

    $mail->Subject  = "New Bug Report";
    $mail->Body     = "User Information, Name = " . $Name . " ||  Email = " . $Email; // I want to get the user's message not a static message!
    $mail->WordWrap = 50;

    if(!$mail->Send())
     {
      echo 'Message was not sent.';
      echo 'Mailer error: ' . $mail->ErrorInfo;
    } 
    else 
    {
            $message = 'Thanks for your suggestion';
    }
 }
以下是html格式的表单:

<form role="form" name="Form2" action="" method="post" class="form-horizontal">
<textarea name="bug" cols="100" rows="15" id="textarea" placeholder="Enter text ..."></textarea>
<input name="mode" value="send" type="hidden">
<p style="margin-top:5px;"><input type="reset" value="Clear Text!" class="btn btn-danger">&nbsp; <button type="submit" class="btn btn-primary">Send report</button></p>
</form>

发送报告


删除
mysql\u real\u escape\u string
它需要连接到mysql

$Name = $_POST['part_fname'];    
$Email = $_POST['part_email'];
$message= $_POST['bug'];//add this to get the textarea value
然后将值附加到主体:

$mail->Body = "User Information, Name = " . $Name . " ||  Email = " . $Email;
$mail->Body .= "Message: ".$message;

如果你想参加会议

用户何时登录:

session_start();
$_SESSION['part_fname'] = $Name;
$_SESSION['part_email'] = $Email;
发送电子邮件时:

session_start();
$Name = $_SESSION['part_fname']; 
$Email = $_SESSION['part_email']; 
$message= $_POST['bug']; 

您需要在表单中添加姓名和电子邮件字段,如下所示:

<input name="part_fname" value="" type="text">
<input name="part_email" value="" type="text">

向我们展示html表单为什么您要使用
mysql\u real\u escape\u string()
。@Dagon,我正在尝试获取姓名和电子邮件,并将其转换为字符串,以便发送到我的电子邮件中。我应该删除它们吗?顺便说一下,我正在将html表单添加到上述代码中,请在几分钟后查看。非常感谢。如果表单正确,您只需要
$mail->Body=“User Information,Name=”即可$_POST['part_fname']。“|| Email=”$_发布['part_email']@Dagon,现在已附加html。你能复习一下吗?谢谢。您好@meda,这段代码很有效,但我的电子邮件中的结果如下:用户信息,名称=| |电子邮件=消息:您好,这是一个bug。。。这意味着现在它会向我发送用户消息,但不会发送电子邮件和姓名。有什么建议吗?您需要在表单中添加字段,请参见dagon answer the HTMLYes true,它将与字段一起工作,但我的要求是,我不应该有任何字段来获取用户的姓名和电子邮件。用户已使用其用户名和电子邮件登录,因此应该有一种方法可以获取电子邮件和用户名,而无需再次输入。我说得对吗?如果是,你有什么建议吗?非常感谢您使用session,您的意思是:$Name=$\u session['part\u fname'$电子邮件=$_会话['part_Email']$message=$\u POST['bug'];不幸的是,即使我使用了你的会话建议,它仍然没有从会话中获得名称和电子邮件!是真的,它将与该领域的工作,但我的要求说,我不应该有任何领域,以获得用户的姓名和电子邮件。用户已使用其用户名和电子邮件登录,因此应该有一种方法可以获取电子邮件和用户名,而无需再次输入。我说得对吗?如果是,你有什么建议吗?非常感谢。用户详细信息在会话中吗?我怎么可能知道呢?是的,你认为我们可以用这个:$Name=$\u SESSION['part\u fname']$电子邮件=$_会话['part_Email']$message=$\u POST['bug'];是的,jsut确保使用
session_start()在访问这些变量之前幸运的是,在使用会话后,它仍然无法从会话中获取名称和电子邮件!
$Name = $_POST['part_fname'];    
$Email = $_POST['part_email'];
$message= $_POST['bug'];// textarea value

$mail->Body = "User Information, Name = " . $Name . " ||  Email = " . $Email;
$mail->Body .= "Message: ".$message;