大小超过 2 MB 的电子邮件附件出错


Error with email attachment with size more than 2 MB

我正在尝试发送大小超过 2MB 的电子邮件附件。但它给出了错误"致命错误:允许的内存大小 31457280 字节耗尽"。我还尝试了以下方法

memory_limit =30M
max_execution_time =3600 
post_max_size = 20M   
upload_max_filesize = 20M

在PHP中.ini file.bt 它不起作用。

<?php
//sending Email using SMTP server
    include "phpmailer/class.smtp.php"; 
    include "phpmailer/class.phpmailer.php";
    $Host = "mail.gmail.com";                       // SMTP servers
    $Username = "YourEmail@gmail.com";  // SMTP password
    $Password = "******";                   // SMTP username
    $From = "YourEmail@gmail.com";
    $FromName = "Your Name";
    ////multilple mail id 
    $str =$_SESSION['MailAll'];
    $arr=explode(",",$str);
    $Tos=$arr;  
    $Ccs = array(
        "CC Name 1" => "cc-email-1@yahoo.com",
        "CC Name 2" => "cc-email-2@gmail.com"
    );
    $Subject ="Project Abstract";
    ///Message Body
    $Body =$_POST['mailcont'] ;;
    $mail = new PHPMailer();
    $mail->IsSMTP();                    // send via SMTP
    $mail->Host     = $Host; 
    $mail->SMTPAuth = true;             // turn on SMTP authentication
    $mail->Username = $Username;  
    $mail->Password = $Password; 
    $mail->From     = $From;
    $mail->FromName = $FromName;
    foreach($Tos as $key => $val){
        $mail->AddAddress($val , $key); 
    }

    $mail->WordWrap = 50;               // set word wrap
    $mail->Priority = 1; 
    $mail->IsHTML(true); 
///// Multiple attachment file pass to $arr by $str
    $str=$_SESSION['DOCFILE'];
    $arr=explode(",",$str);
  for($i=0;$i<count($arr)-1;$i++){
     $mail->AddAttachment($arr[$i]);
}
    $mail->Subject  =  $Subject;
    $mail->Body     =  $Body;
     if(!$mail->Send())
    {
        echo "Mailer Error: " . $mail->ErrorInfo;
    }
    else
    {
      header('location:sendABS.php');
     //   echo 'Message has been sent.';
    }
?>

memory_limit =30M 是针对整个 php 脚本的...变量,对象,常量,其他代码调用/包含的数据等。

为什么还要设置这个?默认值为 128M。