在没有邮件功能的服务器上发送电子邮件

时间:2018-04-13 15:00:33

标签: php linux email phpmailer email-attachments

在网站上,我有一个包含一些字段和一个文件上传控件的表单。填好的表格应与上传的照片一起发送到电子邮箱。

我只有FTP访问网络服务器。我试过但mail()功能不起作用,好像被管理员阻止了。

由于我只有FTP,因此我无法在实时服务器上执行任何安装命令。因此,根据我的知识,不可能安装Pear包。我一直只和CPanel合作过。

我已经尝试过PHPMailer库,但它也没有使用以下测试代码:

 require 'PHPMailerAutoload.php';
    $mail = new PHPMailer;
    $mail->setFrom('admin@test.com', 'Your Name');
    $mail->addAddress('testemail@gmail.com', 'My Friend');
    $mail->Subject  = 'First PHPMailer Message';
    $mail->Body     = 'Hi! This is my first e-mail sent through PHPMailer.';
    if(!$mail->send()) {
      echo 'Message was not sent.';
      echo 'Mailer error: ';
    } else {
      echo 'Message has been sent.';
    }

提交表格,它说

websitename花了太长时间才回复。 ERR_CONNECTION_TIMED_OUT

更新

现在,我在localhost上尝试它 我从这个url下载了PHPMailer库: PHPMailer

我将zip文件解压缩到我的项目文件夹中。 PHPMailer包含文件夹src。现在更新的代码如下:

require 'src/PHPMailer.php';
    $mail = new PHPMailer();
    $mail->setFrom('admin@test.com', 'Your Name');
    $mail->addAddress('testemail@gmail.com', 'My Friend');
    $mail->Subject  = 'First PHPMailer Message';
    $mail->Body     = 'Hi! This is my first e-mail sent through PHPMailer.';
    if(!$mail->send()) {
      echo 'Message was not sent.';
      echo 'Mailer error: ';
    } else {
      echo 'Message has been sent.';
    }

我得到的错误是:

  

致命错误:未找到“PHPMailer”类

更新

现在我已尝试使用本地服务器上的PHPMailer 5.2.0以及使用以下代码通过FTP(我没有Cpanel访问权限)访问实时服务器:

require 'class.phpmailer.php';

    try {
        $mail = new PHPMailer(true); //New instance, with exceptions enabled

        $body = "helo";
        $mail->IsSMTP();                           // tell the class to use SMTP
        $mail->SMTPAuth   = true;                  // enable SMTP authentication
        $mail->Port       = 25;                    // set the SMTP server port
        $mail->Host       = "mail.testserver.com"; // SMTP server
        $mail->Username   = "mail@testserver.com";     // SMTP server username
        $mail->Password   = "mypass";            // SMTP server password

        $mail->IsSendmail();  // tell the class to use Sendmail

        $mail->AddReplyTo("mail@testserver.com","First Last");

        $mail->From       = "mail@testserver.com";
        $mail->FromName   = "First Last";

        $to = "targetuser@gmail.com";

        $mail->AddAddress($to);

        $mail->Subject  = "First PHPMailer Message";

        $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
        $mail->WordWrap   = 80; // set word wrap

        $mail->MsgHTML($body);

        $mail->IsHTML(true); // send as HTML

        $mail->Send();
        echo 'Message has been sent.';
    } catch (phpmailerException $e) {
        echo $e->errorMessage();
    }

使用这段代码,我的新错误是:

无法执行:/ var / qmail / bin / sendmail

我该如何解决这个问题?

0 个答案:

没有答案