массив foreach, ограниченный квалифером - PullRequest
0 голосов
/ 13 июля 2011

Прямо сейчас я читаю в массиве и выполняю цикл foreach в массиве для запуска установленного сценария, в данном случае PHPmail.В этом массиве он работает на 100%, чтобы отправить массив для обновления файла темы.Я хочу обновить код так, чтобы скрипт по-прежнему выполнялся в одном цикле foreach, но считывал две отдельные строки (почти действующие параллельно), которые будут разделяться символом ... например, символом ~ ...

итак, предположим, что в «списке» был следующий объект SUBJECTвыше как SubjectLiner и отправьте строку ввода в теме.

Я хочу, чтобы PHP разбил их на части так, чтобы при запуске php эти две части были разделены в одну последовательность.Прямо сейчас, это прекрасно работает без ~ или компонента вложения.(или тот, который работает очень хорошо ... я хочу, чтобы работал один на один) ..

, поэтому желаемый результат будет при первом проходе. SubjectLiner будет "SUBJECT Goes here" AttachmentLiner будет"/ home / username / filename" и затем на втором проходе: SubjectLiner будет "SUBJECT пошел сюда" AttachmentLiner будет "/ home / username2 / filename2

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

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

В конце дня мне нужно отправить обычное письмо тому же получателю (серверу), у которого другой предмет (с пробелами и;) иразные вложения. У меня это на 85% побито. Нужна двойная информация в каждой строке. Супер ценю любые комментарии. thx.

<?php
require("class.phpmailer.php");

$addylist = file("list"); // Subject line feeder.

foreach($addylist as $SubjectLiner)
{
$mail = new PHPMailer();
$mail->IsSMTP();                                      // set mailer to use SMTP
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server
$mail->Username = "username";  // SMTP username
$mail->Password = "yourpassword"; // SMTP password
$mail->From = "username";
$mail->FromName = "username";
$mail->AddReplyTo("FromAddy", "From Name");
$mail->WordWrap = 50;                                 // set word wrap to 50 characters
$mail->IsHTML(true);                                  // set email format to HTML
$mail->AddAddress("ToAddy", "To Name");
$mail->Body    = "";
$mail->AltBody = "";

$mail->Subject = $SubjectLiner;

$mail->AddAttachment("$AttachmentLiner");         // add attachments



if(!$mail->Send())
{
   echo "Message could not be sent. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}


}

?>

Ответы [ 2 ]

0 голосов
/ 13 июля 2011

Взорвите $SubjectLiner и используйте две части:

<?php
require("class.phpmailer.php");

$addylist = file("list"); // Subject line feeder.

foreach($addylist as $SubjectLiner)
{
    $SubjectLiner = explode("~",$SubjectLiner);
    $subject = $SubjectLiner[0];
    $attachment = $SubjectLiner[1];

    //$mail = .... Same as in your example

    $mail->Subject = $subject;
    $mail->AddAttachment($attachment);         // add attachments

    if(!$mail->Send())
    {
       echo "Message could not be sent. <p>";
       echo "Mailer Error: " . $mail->ErrorInfo;
       exit;
    }
}

?>
0 голосов
/ 13 июля 2011

Здесь есть конкретный вопрос? или вы рады, что сделали это и хотите, чтобы мир это увидел? :))

Однако, у вас есть пропущенная цитата здесь:

$mail->AddReplyTo("FromAddy, "From Name");

Замените это на

$mail->AddReplyTo("FromAddy", "From Name");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...