2015-07-31 4 views
1

назад снова. Я хотел знать, есть ли способ указать конкретный файл для получателей, чтобы он отправил письма в файл вместо того, чтобы поместить запятую между всеми сообщениями. БлагодаряОтправка почты из сценария с файлом списка адресов электронной почты

<?php 
$name = $_POST['Chase']; 
$email = $_POST['email']; 
$message = 'my message'; 
$from = 'From: [email protected]'; 
$to = 'Email.txt(herE)'; 
$subject = 'hi world'; 
$body = "From: $name\r\n E-Mail: $email\r\n Message:\r\n $message"; 

$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; 
$headers .= 'From: [email protected]' . "\r\n" . 
'Reply-To: ' . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 

if (!mail($to, $subject, $message, $headers)) { echo "Error Sending Email!"; } 

else 

{ echo "Mail sent!"; } 
+0

Конечно, вы можете использовать '$ to = file_get_contents ('Email.txt');'. Просто помните, что имена должны быть разделены запятыми или точками с запятой в этом файле. – boylett

+0

sidenote: поскольку вы отправляете как HTML, '\ r \ n' будет включен в сообщение в виде строковых литералов. Используйте '
' 'ы. –

+0

вам также нужно будет отправить пример вашего текстового файла, заменив фактические электронные письма на готовые, плюс покажет нам, что вы попробовали в качестве усилий, было бы неплохо. –

ответ

1

Вы могли бы использовать что-то вроде этого: -
Примечание: - Убедитесь, что вы из электронной почты активен, когда вы размещаете это на сервере, доступном через домен.

$name = "some name"; 
    $email = "[email protected]"; 
    $message = 'my message'; 
    $subject = 'hi world'; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; 
    $headers .= 'From: [email protected]' . "\r\n" . 
    'Reply-To: ' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 
    $handle = fopen("emails.txt", "r"); 
    if ($handle) { 
     while (($line = fgets($handle)) !== false) { 
      if (!mail($line, $subject, $message, $headers)) 
      { 
       echo "Error Sending Email!"; 
      } 
      else 
      { 
       echo "Mail sent!"; 
      } 


      } //while 

fclose ($ handle); } // if - external else { echo "невозможно открыть файл"; }

emails.txt

[email protected] 
[email protected] 

Вы можете добавить больше писем в текстовом файле, без добавления запятой. P.s: - Я настоятельно рекомендую вам использовать phpmailer.


безопасности файла

Убедитесь, что вы защищаете текстовый файл через .htaccess, это очень важно.

Вот Q & А на тему о Stack:

Вы можете далее свое исследование с помощью «как защитить текстовый файл PHP» в качестве ключевых слов в ваших любимых поисковый движок.

+0

Конечно ... но давайте просто надеемся, что OP примет необходимые меры предосторожности, чтобы защитить этот текстовый файл ;-) Лично я использовал бы вместо этого db для этого. –

+1

@ Fred-ii- Согласен по большей части :) Я сам использую БД в таких ситуациях. Поскольку эти типы ситуаций (отправка одного и того же письма нескольким людям) происходят, как правило, при обновлении клиентов из клиентской базы данных и предоставлении им информации о некоторых обновлениях. – Akshay

+0

Просто, чтобы сообщить об этом, я проверил, что вы разместили, и это не сработало для меня. Может быть, ОП тоже попробовал, но я не могу говорить за них. Лучше, чтобы вы прошли его и протестировали. Я сделал все, что мог, чтобы изменить его в конце. Я буду ждать еще полчаса или около того, возможно, очередь в сервере. Я дам вам знать, если это действительно так, но попробуйте и протестируйте его на вашей стороне. –

Смежные вопросы