使用phpmailer时出错 [英] Error when using phpmailer

查看:58
本文介绍了使用phpmailer时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为ios开发一个phonegap应用程序,该应用程序将通过电子邮件将html表单发送给我.我目前将php文件托管在免费的虚拟主机服务上,每当我提交表单时都会收到此错误:

I'm trying to make a phonegap application for ios that will email an html form to me. Im currently hosting the php file on a free web hosting service and whenever I submit the form I get this error:

致命错误:在第1302行的/home/a2080029/public_html/class.phpmailer.php中找不到类'SMTP'

Fatal error: Class 'SMTP' not found in /home/a2080029/public_html/class.phpmailer.php on line 1302

这是我的php:

 <?php

if(isset($_POST['email'])) {
    $email_to = "myemail@gmail.com";
    $email_subject = "New customer requesting information/appointment";

    function died($error) {
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

    if(!isset($_POST['first_name']) ||
       !isset($_POST['last_name']) ||
       !isset($_POST['email']) ||
       !isset($_POST['telephone']) ||
       !isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');       
    }

    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

    if(!preg_match($email_exp,$email_from)) {
        $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
    }

    $string_exp = "/^[A-Za-z .'-]+$/";
    if(!preg_match($string_exp,$first_name)) {
        $error_message .= 'The First Name you entered does not appear to be valid.<br />';
    }
    if(!preg_match($string_exp,$last_name)) {
        $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
    }
    if(strlen($comments) < 2) {
        $error_message .= 'The Comments you entered do not appear to be valid.<br />';
    }
    if(strlen($error_message) > 0) {
        died($error_message);
    }
    $email_message = "Form details below.\n\n";

    function clean_string($string) {
        $bad = array("content-type","bcc:","to:","cc:","href");
        return str_replace($bad,"",$string);
    }

    $email_message .= "First Name: ".clean_string($first_name)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";
    require("PHPMailerAutoload.php");
    $mail = new PHPMailer();  // create a new object
    $mail->IsSMTP(); // enable SMTP
    $mail->SMTPDebug = 4;  // debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true;  // authentication enabled
    $mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 587; 
    $mail->Username = "username@gmail.com";  
    $mail->Password = "password";
    $mail->From     = "username@gmail.com";
    $mail->AddAddress("toemail@gmail.com");
    $mail->Subject  = $email_subject;
    $mail->Body     = $email_message;
    $mail->WordWrap = 50;
    if(!$mail->Send()) {
        echo 'Message was not sent.';
        echo 'Mailer error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message has been sent.';
    }?>

与此文件一样,我在同一文件中有class.phpmailer.php和PHPMailerAutoload.php.

I have class.phpmailer.php and PHPMailerAutoload.php in the same files as this php file.

我对这件事真的很陌生,无法弄清楚为什么这对我的一生都不起作用.

I am really new to this whole thing and can't figure out why this wont work for the life of me.

推荐答案

您不必安装PHPmailer,只需将PHPmailer的类文件复制到服务器上,然后将其包含在代码中即可.

You don't have to install PHPmailer, you just need to copy the class files of the PHPmailer to your server and include then in your code.

将以下三个文件复制到您的服务器.您可以从此处

Copy the three following files to your server. You can download the files from here

class.phpmailer.php
class.smtp.php
PHPMailerAutoload.php

其余所有外观都很好

这篇关于使用phpmailer时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆