2017-07-15 23 views
0

私のコードで助けが必要ですが、この関数でメールを送信しようとしていますが、メールを送信できません。私がコードベース全体を見て、エラーを修正するのに役立つなら、私はそれを感謝します。ありがとう。関数呼び出しで変数を渡す方法

emailClass.php

<?php 

class email 
{ 
function emailWithAttach($fromaddress, $toAddress, $mailSubject, $mailMessageHead, $mailMessageMain, $mailMessageEnd, $fileName) 
{ 
    $fileatt_name = "Invoice"; 
    $fileatt = $fileName; 
    $fileatt_type = "application/octet-stream"; 
    $email_from = $fromaddress; 
    $email_subject = $mailSubject; 

    $email_message = $mailMessageHead."<br>"; 
    $email_message .= $mailMessageMain."<br>"; 
    $email_message .= $mailMessageEnd; 

    $email_to = $toAddress; 
    $headers = "From: ".$email_from; 

    $file = fopen($fileatt, 'rb'); 
    $data = fread($file, filesize($fileatt)); 
    fclose($file); 

    $semi_rand=md5(time()); 
    $mime_boundary .= "==Multipart_Boundary_x{$semi_rand}x"; 
    $headers .= "MIME-Version:1.0\n". 
    "Content-Type: Multipart/mixed;\n". 
    "boundary=\"{$mime_boundary}\""; 

    $email_message .= "This is a multi-part message in MIME format.\n\n". 
    "--{$mime_boundary}\n". 
    "Content-Type: text/html; charset=\"iso-8859-1\"\n". 
    "Content-Transfer-Encoding: 7bit\n\n". 
    $email_message .= "\n\n"; 

    $data = chunk_split(base64_encode($data)); 

    $email_message .= "--{$mime_boundary}\n". 
    "Content-Type: {$fileatt_type};\n". 
    "name=\"{$fileatt_name}\"\n". 
    "Content-Transfer-Encoding: base64\n\n". 
    $data .="\n\n". 
    "--{$mime_boundary}--\n"; 

    if(mail($email_to, $email_subject, $email_message, $headers)) 
    { 
     return true; 
    } 

} 
} 


?> 

これは私が作った修正で自分のコードを更新しました、まだメールが送信されていない私のテンプレートのindex.php

<?php 
include "emailClass.php"; 

$testEmail = new email(); 
$from = '[email protected]'; 
$sendTo = '[email protected]'; 
$subject ='ABS Travels'; 
$bodyHead = 'Welcome to attachment of Email'; 
$bodyMain = 'I love the way php handles email attachment, it is amazing to me'; 
$bodyEnd = 'Thank you'; 
//$filePath = ''; 
$fileName = 'reports.pdf'; 

if($testEmail->emailWithAttach($from, $sendTo, $subject, $bodyHead, $bodyMain, $bodyEnd, $fileName)) 
{ 
    echo 'Email send successful'; 
} 
else 
{ 
    echo 'Email Failed'; 
} 
?> 

です。任意の提案をしてください。「メール失敗」メッセージ以外のエラーは表示されません。

+2

申し訳ありませんが、「私のコードは機能しません。修復してください」と尋ねる質問は、ここではっきりとオフトピックと見なされます。あなたはあなたのためにあなたの仕事をする(支払われた)プログラマーを探す必要があります。私たちは助けを求めていますが、そのためには、1.あなた自身をデバッグしてもらいたい、2.問題の正確さを教えてください。 – arkascha

+0

'' $ testEmail-> emailWithAttach() '' 'の出力は何ですか? ? –

+0

ヒント:ヒント:ログを回すかエラーを起こし、 '@mail(...)'呼び出しから '@'を削除し、httpサーバのエラーログファイルの監視を開始してください。おそらくあなたのコード内に問題があるかどうかをあなたに伝えます。 Web環境でPHPでプログラミングしている場合、そのエラーログファイルを監視することはありません。あなたの目が盲目になって暗い洞窟で飛ぶようなものです... – arkascha

答えて

0

誤植を修正しても問題ありません。

<?php 
[...] 

$testEmail = new email(); # When you call a new class you need the parenthese 
[...] 
?> 
+0

あなたの返信ありがとうございました..私はまだ電子メールが失敗したメッセージを残しました.. – Koodie

+0

あなたの質問にあなたのエラーを更新してください – funilrys

関連する問題