2016-07-07 281 views
0

一旦用戶點擊註冊頁面上的提交按鈕,我試圖發送一封電子郵件給管理員。下面給出的代碼工作正常,我得到了管理員電子郵件地址的所有細節。我被困在兩個地方:用附件發送電子郵件到多封電子郵件

  1. 我想發一個抄送到[email protected]了。我試圖在像$receiver = "[email protected],[email protected]";這樣的變量中加逗號,但它不起作用。郵件不發送。需要知道如何將這封電子郵件發送給兩個不同的人。
  2. $panph1變量返回服務器上的文件名(本例中爲1467896354.jpg)。它會在電子郵件正文中顯示文件名以及所有其他數據。這個文件存儲在/pancard/1467896354.jpg - 我應該做些什麼修改才能得到這封電子郵件附帶的實際文件。

感謝

$subject = "New registration from $name "; 
$receiver = "[email protected]"; 
$prod_id1=$rowcc['prod_id']; 
$mobile1=$rowcc['mobile']; 
$reg=$rowcc['reg_date']; 
$ip1=$rowcc['ip']; 
$panno1=$rowcc['pan_no']; 
$panph1=$rowcc['pan_photo']; 
$message = "  
<html> 
<body> 
<table> 
    <tr> 
    <td>Product ID</td> 
    <td>:</td> 
    <td>$prod_id1</td> 
    </tr> 
    <tr> 
    <td>Name</td> 
    <td>:</td> 
    <td>$name</td> 
    </tr> 
    <tr> 
    <td>Email Address</td> 
    <td>:</td> 
    <td>$to</td> 
    </tr> 
    <tr> 
    <td>Mobile</td> 
    <td>:</td> 
    <td>$mobile1</td> 
    </tr> 
    <tr> 
    <td>Registration Date</td> 
    <td>:</td> 
    <td>$reg</td> 
    </tr> 
    <tr> 
    <td>IP Address</td> 
    <td>:</td> 
    <td>$ip1</td> 
    </tr> 
    <tr> 
    <td>Pan Card Number</td> 
    <td>:</td> 
    <td>$panno1</td> 
    </tr> 
    <tr> 
    <td>Pan Card Photo</td> 
    <td>:</td> 
    <td>$panph1</td> 
    </tr> 
</table> 
</body> 
</html> 
"; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From:'.$from."\r\n" 
.'Reply-To: $receiver'."\r\n"; 

mail($receiver,$subject, $message, $headers); 
+0

可能重複http://stackoverflow.com/questions/12301358/send-attachments-with-php-mail – ecorvo

+0

我看到這個頁面我張貼之前我的問題,它談論PHPMailer腳本,但我有我自己的類和'mail()'函數工作正常。它只是我不知道正確的語法添加CC(另一封電子郵件)和內容類型/標題/語法來添加附件 – Sabha

+0

您是否嘗試過將此標頭髮送電子郵件副本? '$ headers。='抄送:[email protected]'。 「\ r \ n」;' – Nick

回答

1

爲什麼不使用PhpMailer

許多PHP開發人員在他們的代碼中使用電子郵件。唯一支持這種功能的PHP函數 是mail()函數。但是, 不提供任何使用流行功能的幫助,例如 基於HTML的電子郵件和附件。

下面是使用PHPMailer的一個例子:

<?php 
require 'PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

//$mail->SMTPDebug = 3;        // Enable verbose debug output 

$mail->isSMTP();          // Set mailer to use SMTP 
$mail->Host = 'smtpserver.com'; // Specify main SMTP server. If you dont have one us GMAL or mandrill 
$mail->SMTPAuth = true;        // Enable SMTP authentication 
$mail->Username = '[email protected]';     // SMTP username 
$mail->Password = 'pass';       // SMTP password 
$mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
$mail->Port = 587;         // TCP port to connect to 

$mail->setFrom('[email protected]', 'Mailer'); 
$mail->addAddress('[email protected]', 'Joe User');  // Add a recipient 
$mail->addAddress('[email protected]');    // Name is optional 
$mail->addReplyTo('[email protected]', 'Information'); 
$mail->addCC('[email protected]'); 
$mail->addBCC('[email protected]'); 

$mail->addAttachment('/var/tmp/file.tar.gz');   // Add attachments 
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name 
$mail->isHTML(true);         // Set email format to HTML 

$mail->Subject = 'Here is the subject'; 
$mail->Body = 'This is the HTML message body <b>in bold!</b>'; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 
+0

您的解決方案可能比我使用的更好,甚至更好。但是,我需要在很多文件中改變很多東西。我認爲會有一個特定的語法或特定的標題需要發送附件和添加CC。請讓我知道你是否可以操縱我的代碼來獲得結果。謝謝 – Sabha

+1

我明白了,但從長遠來看會更好。 php mail()函數有很多限制,特別是不通過SMTP發送它們。你的大部分電子郵件都會到達垃圾郵件文件夾,或者根本沒有到達。 – Nick

+0

我明白這個問題。我想盡快完成這一工作,因爲發送附件是剩下的唯一工作。我將在下一個項目中使用PhpMailer。謝謝你的建議。 – Sabha