PHP отправляет HTML-страницу электронной почты с веб-сайта - PullRequest
1 голос
/ 03 декабря 2010

Раньше я использовал PHP для отправки электронных писем, но никогда не отправлял полную HTML-страницу из другого источника, поэтому мне интересно, с чего начать и некоторые другие вещи.

Я провел небольшое исследование, но мое замешательство не прояснилось.

Могу ли я напрямую получить содержимое веб-страницы и отправить его или я могу использовать настройку, чтобы просто использовать URL? Какой самый простой метод я мог бы использовать, и кто-то может показать мне пример? Есть ли риск при отправке такого электронного письма, чтобы сказать ... 5000 человек, и как мне изменить данные заголовка с обратной ссылкой на источник URL?

Ответы [ 3 ]

3 голосов
/ 03 декабря 2010

Следующая строка получает содержимое HTML-страницы.

 $mail->MsgHTML(file_get_contents('contents.html'));

Зайдите сюда для получения полной информации: http://phpmailer.worxware.com/index.php?pg=exampleagmail

require_once('../class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP

try {
  $mail->Host       = "mail.yourdomain.com"; // SMTP server
  $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->SMTPSecure = "tls";                 // sets the prefix to the servier
  $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  $mail->Port       = 587;                   // set the SMTP port for the GMAIL server
  $mail->Username   = "yourusername@gmail.com";  // GMAIL username
  $mail->Password   = "yourpassword";            // GMAIL password
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->AddAddress('whoto@otherdomain.com', 'John Doe');
  $mail->SetFrom('name@yourdomain.com', 'First Last');
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  $mail->MsgHTML(file_get_contents('contents.html'));
  $mail->AddAttachment('images/phpmailer.gif');      // attachment
  $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail->Send();
  echo "Message Sent OK\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}
1 голос
/ 03 декабря 2010

Отказ от ответственности: я пока не могу комментировать, поэтому, пожалуйста, простите, что это «ответ».

Я думаю, вам, вероятно, придется немного прояснить свои цели здесь.

Звучит так, как будто вы хотите сначала создать базовый скребок, если у вас нет доступа к необработанному HTML-файлу.В основном вы можете использовать fopen ("Url", "r"), fsockopen ("url", 80) или использовать обработчик завитков для отправки запроса страницы.

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

Если добавить ссылку на заголовок электронного письма,Вы можете сделать это, но у меня есть ощущение, что это не будет делать то, что вы хотите.Способ сделать это будет зависеть от того, как вы решите отправить электронное письмо.

0 голосов
/ 03 декабря 2010

Хороший ответ Айвса.

Есть один недостаток, который вы действительно хотите рассмотреть, отправив по электронной почте html-страницу.

HTML-письма и HTML-страницы - это две совершенно разные школы.

Письма в формате HTML возвращают вас на 10 лет (привет!), Что вы можете сделать для поддержки как можно большего количества почтовых клиентов.

Скорее всего, прямая электронная почта будет выглядеть просто чушьюна адрес электронной почты получателя ..

и затем вы должны рассмотреть возможность встраивания таблиц стилей и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...