致命错误:类 'Swift_smtpTransport'没有找到 [英] Fatal error: Class 'Swift_smtpTransport' not found in

查看:68
本文介绍了致命错误:类 'Swift_smtpTransport'没有找到的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试添加从我的网站后端向客户发送电子邮件的功能,并尝试使用 swiftmailer 来执行此操作.不幸的是,我不断收到错误消息

I am trying to add the functionality to send my customers emails from my website backend and am attempting to use swiftmailer to do this. I unfortunately keep getting an error message

Fatal error: Class 'Swift_smtpTransport' not found in /home/u312041955/public_html/cust/modules/customer/email.php on line 94

虽然在我看来 swiftmailer 类没有被正确包含,但它必须是,否则页面根本不显示任何信息.我正在使用 swiftmailer 的页面中的代码如下.

Although it seem to me like the swiftmailer class is not being included properly it must be as otherwise the page does not display any information at all. The code from the page I am using swiftmailer from is as follows.

<?php require_once("include.php");
    //Required for swift mailer
    require_once (INCLUDE_URL.'/swift/lib/swift_required.php');
    if(!xml2php("customer")) {
    $smarty->assign('error_msg',"Error in language file");
    }
    // Lets grab some variables we need
    $email_username = $VAR['email_username'];
    $email_password = $VAR['email_password'];
    $email_server = $VAR['email_server2'];
    $email_server_port = $VAR['email_server_port2'];
    $customer_id = $VAR['customer_id'];
    $c2 = $VAR['c2'];
    $download_id = $VAR['download_id'];
    $submit = $VAR['submit'];
    $email_to = $VAR['email_to'];
    $email_from = $VAR['email_from'];
    $email_subject = $VAR['email_subject'];
    $message_body = $VAR['message_body'];
    $attachment = $VAR['attachment'];
    $rr_email = $VAR['rr'];
    $cus_name = $VAR['cus_name'];
    $sig = "<br>Regards,<br>".$employee_details ['EMPLOYEE_FIRST_NAME']."<br>MD-PC";

//Get All customer Emails
$q = "SELECT * FROM ".PRFX."TABLE_CUSTOMER_EMAILS WHERE CUSTOMER_ID ='".$customer_id."' ORDER BY CUSTOMER_EMAIL_ID DESC" ;
$rs = $db->Execute($q);
$customer_emails = $rs->GetArray();
$smarty->assign('customer_emails', $customer_emails);
/*Get Customer Info */
$q = "SELECT * FROM ".PRFX."TABLE_CUSTOMER WHERE CUSTOMER_ID ='".$customer_id."'" ;
$rs = $db->Execute($q);
$customer_details = $rs->GetArray();
$smarty->assign('customer_details', $customer_details);
/*Get Employee Info */
$q = "SELECT * FROM ".PRFX."TABLE_EMPLOYEE WHERE EMPLOYEE_DISPLAY_NAME ='".$login."'" ;
$rs = $db->Execute($q);
$employee_details = $rs->FetchRow();
$smarty->assign('employee_details', $employee_details);
// assign the arrays
$smarty->assign('open_work_orders', display_open_workorders($db, $customer_id));
$smarty->assign('closed_work_orders',   display_closed_workorders($db, $customer_id));
//$smarty->assign('customer_details',   display_customer_info($db, $customer_id));
$smarty->assign('customer_details',$customer_details);
$smarty->assign('unpaid_invoices', display_unpaid_invoices($db,$customer_id));
$smarty->assign('paid_invoices', display_paid_invoices($db,$customer_id));
$smarty->assign('memo', display_memo($db,$customer_id));
$smarty->assign('gift', display_gift($db, $customer_id));
$smarty->assign('company_details',display_company_info($db, $company_id));
//Lets Get the file downloaded to have a look at it from the database
if(isset ($download_id)){
 /*Get All customer Emails */
$q = "SELECT CUSTOMER_EMAIL_ATT_NAME1, CUSTOMER_EMAIL_ATT_TYPE1, CUSTOMER_EMAIL_ATT_SIZE1, CUSTOMER_EMAIL_ATT_FILE1,  FROM ".PRFX."TABLE_CUSTOMER_EMAILS WHERE CUSTOMER_EMAIL_ID ='".$download_id."'" ;
$rs = $db->Execute($q);
//header("Content-length: $rs->fields['CUSTOMER_EMAIL_ATT_SIZE1']");
//header("Content-type: $rs->fields['CUSTOMER_EMAIL_ATT_TYPE1']");
//header("Content-Disposition: attachment; filename=$rs->fields['CUSTOMER_EMAIL_ATT_NAME1']");
$file_download= $rs->fields['CUSTOMER_EMAIL_ATT_FILE1'];
$smarty->assign('file_download', $file_download);
//Print $CUSTOMER_EMAIL_ATT_NAME1;
 exit;

 }
// BOF Email Message details
//Mail
if(isset ($submit)){
    if($_FILES['attachment1']['size'] >  0 ){
    $fp      = fopen($_FILES['attachment1']['tmp_name'], 'r');
    $content1 = fread($fp, filesize($_FILES['attachment1']['tmp_name']));
    $content1 = addslashes($content1);
    fclose($fp);
    }
    $sql = "INSERT INTO ".PRFX."TABLE_CUSTOMER_EMAILS SET
            CUSTOMER_ID             = ". $db->qstr($VAR["c2"]).",
            CUSTOMER_EMAIL_ADDRESS  = ". $db->qstr( $VAR["email_to"]).",
            CUSTOMER_FROM_EMAIL_ADDRESS = ". $db->qstr( $VAR["email_from"]).",
            CUSTOMER_EMAIL_SENT_BY      = ". $db->qstr( $login ).", 
            CUSTOMER_EMAIL_SENT_ON      = ". $db->qstr( time()).",
            CUSTOMER_EMAIL_SUBJECT      = ". $db->qstr( $VAR["email_subject"]).",
            CUSTOMER_EMAIL_BODY = ". $db->qstr( $VAR["message_body"]).",
            CUSTOMER_EMAIL_ATT_NAME1    = ". $db->qstr( $_FILES['attachment1']['name']).",
            CUSTOMER_EMAIL_ATT_TYPE1        = ". $db->qstr( $_FILES['attachment1']['type']).",
            CUSTOMER_EMAIL_ATT_SIZE1        = ". $db->qstr( $_FILES['attachment1']['size']).",
            CUSTOMER_EMAIL_ATT_FILE1    = ". $db->qstr( $content1 ); 



    if(!$result = $db->Execute($sql)) {
        force_page('core', 'error&error_msg=MySQL Error: '.$db->ErrorMsg().'&menu=1&type=database');
        exit;
    }
//print $sql ;
    $transport = Swift_smtpTransport::newInstance( "mx1.hostinger.co.uk" , 2525 )
    ->setUsername('noreply@example.co.uk')
    ->setPassword('******');
    $mailer = Swift_Mailer::newInstance($transport);
    //Create a message
    $message = Swift_Message::newInstance($email_subject)
      ->setFrom(array($email_from => $employee_details['EMPLOYEE_FIRST_NAME']))
     ->setTo(array($email_to => $cus_name))
     ->setBody($strip )
     ->addPart('Hello '.$cus_name , 'text/html')
     ->addPart($message_body, 'text/plain')
     ->attach(Swift_Attachment::fromPath($target_path));
     //Send the message
     $numSent = $mailer->send($message);
     //Display how many messages were sent
     echo "<script>alert('Email Information')</script>";
     echo "Sent %d messages\n", $numSent;
     exit(); 

    }
    ?>

我现在或一段时间一直在为此苦苦挣扎,可以朝正确的方向推进.

I have been struggling with this now or some time and could use a shove in the right direction.

更新 1:我一直在玩这个,当我改变线路时

Update 1: I have been continuing to play around with this and when i change the line

$transport = Swift_smtpTransport::newInstance( "mx1.hostinger.co.uk" , 2525 )
->setUsername('noreply@example.co.uk')
->setPassword('******');

简单的

$transport = Swift_MailTransport::newInstance()

所以它不再使用 SMTP 我收到一条消息发送成功通知但由于某种原因它将它发送到发件人电子邮件地址并被标记为垃圾邮件因为它可能不是来自该帐户因此我想要使用 smtp.更新 2:在阅读其他线程后,我发现

so it isn't using SMTP anymore i get a message sent successfully notification but for some reason it sends it to the from email address and also gets marked as spam because it may not have originated from the account hence why I want to use smtp. Update 2: after reading other threads I found that

$transport = Swift_smtpTransport::newInstance( "mx1.hostinger.co.uk" , 2525 );

其实应该是

$transport = Swift_SmtpTransport::newyInstance( "mx1.hostinger.co.uk" , 2525 )
;

这消除了未找到类的错误,但我现在收到超时错误.我确信我使用的是正确的邮件服务器详细信息,因为我是从我的主机那里得到的.非常感谢任何帮助.

This gets rid of the class not found error but I now get a timeout error. I am certain I am using the correct mail server detail as I got them from my host. Any help very much appreciated.

推荐答案

最终解决了

$transport = Swift_smtpTransport::newInstance( "mx1.hostinger.co.uk" , 2525 );

事实上应该

$transport = Swift_SmtpTransport::newyInstance( "mx1.hostinger.co.uk" , 2525 );

然后我的托管服务提供商不允许我的计划通过 SMTP 发送邮件.

and then afterwards that my hosting provider does not allow mail to be sent by SMTP on my plan.

这篇关于致命错误:类 &amp;#39;Swift_smtpTransport&amp;#39;没有找到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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