Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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
通过PHP表单发送HTML电子邮件_Php - Fatal编程技术网

通过PHP表单发送HTML电子邮件

通过PHP表单发送HTML电子邮件,php,Php,我正在尝试发送我的网站访问者和电子邮件与一些指示和提示,然后他们显示在我的工作室通过PHP表单邮件。(我正在简化一些表单字段) 但是HTML格式无法正常工作。。。。我没有正确声明字符集的mime类型吗 <?php if (isset($_POST['submit'])) { //if (empty ($_POST['name']) || empty($_POST['email'])) //{

我正在尝试发送我的网站访问者和电子邮件与一些指示和提示,然后他们显示在我的工作室通过PHP表单邮件。(我正在简化一些表单字段)

但是HTML格式无法正常工作。。。。我没有正确声明字符集的mime类型吗

<?php 

            if (isset($_POST['submit'])) { 

            //if (empty ($_POST['name']) || empty($_POST['email'])) 
            //{
            //echo"<div class='error'>Error<br />You did not fill in a required field, please review your form and correct the missing information. <a class='close' href='#'>close</a></div>";
            //}

            $name = $_POST['name'];
            $email = $_POST['email'];
            $email2 = $_POST['email2'];
            //A bunch of other fields are here

            //Additional Headers

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


            //$yoursite = "My Site";
            //$youremail = $email;

            $subject = "Website Form";
            $message = "
            $name would like you to contact them about your service.
            Contact PH:  $phone
            Email:  $email
            Legal Guardian: $legal              
            //more stuff here
            ";


            $subject2 = "Directions and Information";

                            $message2 = "<html><head></head><body>
            $message2 .= "<h1>Directions</h1>

            <p>text</p>

            <p><a href='http://example.com/schedules'>Click here</a>

            <h2>How Do I find your Photo Studio?</h2>

            <h2>What do I have to bring with me?</h2>
            </p>";

            $message2 .= "</body></html>";



            $email3 = "me@mysite.com";
            $email4 = "mysite@gmail.com";




            //This email sends their details to me from the visitor
            mail($email3, $subject, $message, "From: $email");


                            //This email sends directions to the visitor from me
            mail($email, $subject2, $message2, "From: $email4");

            echo"<div class='thankyou'>Thank you for contacting us,<br /> we will respond as soon as we can.</div>";


            }
            ?>

要正确发送电子邮件,需要对电子邮件进行大量随机垃圾处理。我通常倾向于将所有责任外包给一个存在于野外的预打包类,比如


也许其他人会有更好的课程提供。

我对PEAR Mail\u Mime软件包发誓。它简单而强大

//基本邮件头
$headers['To']=”test@domain.com";
$headers['From']=”sender@domain.com";
$headers['Subject']=“Test”;
//设置邮件模块
$mime=新邮件\u mime(“\r\n”);
$mime->setTXTBody(“这是一个测试”);
$mime->setHTMLBody(“这是一个测试。

”; $body=$mime->get(); $headers=$mime->headers($headers); //通过SMTP发送邮件 $mail_obj=&mail::工厂('smtp',数组('host'=>'mail.domain.com','port'=>25)); $mail_obj->send($headers['To'],$headers,$body);
您甚至没有使用
$headers
变量。另外,您还有一个无与伦比的双引号
$message2=“
我建议您使用一个精致的免费邮件程序类,例如PHP邮件程序、Swift邮件程序。这看起来比我试图做的更易于管理。问题…在->setFrom(数组)中me@mysite.com“))变量,如何设置它以提取在“电子邮件”中输入的数据“field?->setFrom(数组($\u POST['email'])应该可以做到这一点。。。除非我误解了你。也可以只做->setFrom($\u POST['email']),而不使用数组。然而,在你尝试将邮件插入到像那样的对象之前,最好先验证已发布的邮件是否为有效的电子邮件地址。我已经验证过了,谢谢……我会尝试两种方法,看看我得到了什么。
//Basic mail headers
$headers['To'] = "test@domain.com";
$headers['From'] = "sender@domain.com";
$headers['Subject'] = "Test";

//Set up the mail module
$mime = new Mail_mime("\r\n");
$mime->setTXTBody("This is a test");
$mime->setHTMLBody("<p>This is a test.</p>");
$body = $mime->get();
$headers = $mime->headers($headers);

//Send the message via SMTP
$mail_obj =& Mail::factory('smtp', array('host' => 'mail.domain.com', 'port' => 25));
$mail_obj->send($headers['To'], $headers, $body);