2010-12-02 9 views
1

PHPを使用して以前はメールを送信しましたが、他のソースから完全なHTMLページを送信していないので、どこから始めたらいいのかと思っています。PHPはウェブサイトからHTML EMAILページを送信します

私は少しの研究をしましたが、私の混乱は解決していません。

ウェブページのコンテンツを直接取得して送信することはできますか、設定を使用してURLを使用することはできますか? 私が使用できる最も簡単な方法は何ですか?誰かが私に例を示すことができますか? このような電子メールを送信すると危険性はありますか?5000人、URLソースへのリターンリンクを使用してヘッダーデータを変更するにはどうすればよいですか?

+1

あなたがしたいですページへのリンクを送信するか、ページのソースを送信しますか? – drudge

+0

規制上の配慮が心配なら、[Constant Contact](http://www.constantcontact.com/)などのサービスでリストに送信することができます。その後、オプトアウトなどのことを管理できます。 – zanlok

+0

私は規制について少しは心配していますが、今はメールの送信元から始めます。 – Chenelle

答えて

3

次の行は、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 = "[email protected]"; // GMAIL username 
    $mail->Password = "yourpassword";   // GMAIL password 
    $mail->AddReplyTo('[email protected]', 'First Last'); 
    $mail->AddAddress('[email protected]', 'John Doe'); 
    $mail->SetFrom('[email protected]', 'First Last'); 
    $mail->AddReplyTo('[email protected]', '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! 
} 
+0

私は彼がWeb URIからHTMLを取得したいと思います。 – zanlok

+0

file_get_contentsを使用して外部URLから取得できます。 http://php.net/manual/en/function.file-get-contents.php。 唯一の問題は、一部のホストがこの機能を無効にすることです。 –

+0

ああ!優れた!私の質問のほとんどを1つの回答で回答しました!file_get_contents <3 ありがとうございました!私はまだ非常に多くの電子メール、任意の提案を送信するリスクについては少し興味がありますか? – Chenelle

1

免責事項:私はまだので、これは "答え" で許してください、コメントすることはできません。

おそらくあなたはここで少し目標を明確にしなければならないと思います。

生のhtmlファイルにアクセスできない場合は、最初に基本的なスクレーパーを作成します。 基本的には、fopen( "Url"、 "r")、fsockopen( "url"、80)を使用するか、カールハンドラを使用してページリクエストを送信できます。

ここから、あなたの方法に応じて、応答を読み、HTMLまたは複数の部分の電子メールを生成します。

電子メールヘッダーへのリンクを追加する限り、それを行うことができますが、私はそれがあなたが望むことをするつもりはないと感じています。それを行う方法は、あなたが電子メールを送信する方法に依存します。

0

アイヴスの答えがいいです。

あなたは本当にhtmlページを電子メールで送信することで検討したい1つの問題があります。

Htmlの電子メールとHtmlのページは全く異なる2つの学校です。

Htmlの電子メールは、できるだけ多くの電子メールクライアントをサポートするためにできることで、10年(hello tables!

それは...ストレート電子メール、Webページの事は受信者のメールに合計がらくたを見ていきます非常に可能性があります

、その後、あなたはスタイルシートなどを埋め込むことを検討するんだ...

+0

ああ、私は主に画像と表からなる電子メール専用のWebページを作成するためにコーディングしている人に頼むべきですか? – Chenelle

関連する問題