0

ユーザーが私のウェブサイトにフォームを送信した後、どのようにユーザーにメールを送信するのか知りたいのですが。

背景: 2002年に父が閉鎖したサイトを再開します。現在、サイトがまもなく復活することを示すウェルカム/スプラッシュページがあります。このページでは、起動リストに追加するメールアドレスを入力するようユーザーに求めています。このフォームは、以下のように「Webフォームメーラー」を使用します。

<form action="/webformmailer.php" method="post">

彼らのメールは私たちが選んだ受信箱に送られます。私がやりたいのは、このユーザーに、感謝、更新を楽しみにしている、もう一度感謝するなどのメールを送信することです。

どうすればいいですか?わからないので助けていただければ幸いです!!

4

4 に答える 4

1

非常に単純なプレーンテキストの電子メールを送信したい場合は、PHPmail()関数をすばやく使用できます。(これは、Webホストにsendmailが設定されていることを前提としています)。それ以外の場合、SMTP機能はオプションです(上記の回答)。ただし、ユーザーが送信したすべての入力を確認して、スパマーがメールを使用できないようにしてください。最も重要なのは、メールアドレスやユーザー名などからラインフィードを削除することです。

しかし、はるかに優れたオプションは、事前に作成されたライブラリを使用することです。これにより、質問や問題の多くが取り除かれます。SwiftMailerは、さまざまな送信方法(SMTP、sendmail)および形式(テキスト、HTMLなど)に対応でき、スパムの中継にツアーフォームが使用されるのを防ぐのに役立つため、現在おそらく最高の1つです。それも十分にドキュメント化されています(IEを使用しない場合-ドキュメントページはIEでは機能しません!)

添付ファイルやHTMLメールを送信したい場合は、を介して送信することもできますmail()が、すべてのプラットフォームで機能させるには少し苦労します。繰り返しますが、SwiftMailer(および他のライブラリ)はこれを簡単にします。したがって、ライブラリから始めることもできます。

于 2012-11-27T06:42:11.920 に答える
0

このコードを使用して、PHPで電子メールを送信できます。:

<?php

   require_once "Mail.php";

    $from = "<from.gmail.com>";
    $to = "<to.yahoo.com>";
    $subject = "Hi!";
    $body = "Hi,\n\nHow are you?";

    $host = "ssl://smtp.gmail.com";
    $port = "465";
    $username = "myaccount@gmail.com";  //<> give errors
    $password = "password";

    $headers = array ('From' => $from,
      'To' => $to,
      'Subject' => $subject);
    $smtp = Mail::factory('smtp',
      array ('host' => $host,
        'port' => $port,
        'auth' => true,
        'username' => $username,
        'password' => $password));

    $mail = $smtp->send($to, $headers, $body);

    if (PEAR::isError($mail)) {
      echo("<p>" . $mail->getMessage() . "</p>");
     } else {
      echo("<p>Message successfully sent!</p>");
     }

?>  <!-- end of php tag-->

また、PHPを使用して大量の電子メールを送信する場合は、ここで解決策を見つけることができます

于 2012-11-27T06:23:27.110 に答える
0

これを試して

SMTPconfig.php

<?php
//Server Address
$SmtpServer="127.0.0.1";
$SmtpPort="25"; //default
$SmtpUser="username";
$SmtpPass="password";
?>

SMTPclass.php

<?php
class SMTPClient
{

function SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $subject, $body)
{

$this->SmtpServer = $SmtpServer;
$this->SmtpUser = base64_encode ($SmtpUser);
$this->SmtpPass = base64_encode ($SmtpPass);
$this->from = $from;
$this->to = $to;
$this->subject = $subject;
$this->body = $body;

if ($SmtpPort == "") 
{
$this->PortSMTP = 25;
}
else
{
$this->PortSMTP = $SmtpPort;
}
}

function SendMail ()
{
if ($SMTPIN = fsockopen ($this->SmtpServer, $this->PortSMTP)) 
{
fputs ($SMTPIN, "EHLO ".$HTTP_HOST."\r\n"); 
$talk["hello"] = fgets ( $SMTPIN, 1024 ); 
fputs($SMTPIN, "auth login\r\n");
$talk["res"]=fgets($SMTPIN,1024);
fputs($SMTPIN, $this->SmtpUser."\r\n");
$talk["user"]=fgets($SMTPIN,1024);
fputs($SMTPIN, $this->SmtpPass."\r\n");
$talk["pass"]=fgets($SMTPIN,256);
fputs ($SMTPIN, "MAIL FROM: <".$this->from.">\r\n"); 
$talk["From"] = fgets ( $SMTPIN, 1024 ); 
fputs ($SMTPIN, "RCPT TO: <".$this->to.">\r\n"); 
$talk["To"] = fgets ($SMTPIN, 1024); 
fputs($SMTPIN, "DATA\r\n");
$talk["data"]=fgets( $SMTPIN,1024 );
fputs($SMTPIN, "To: <".$this->to.">\r\nFrom: <".$this->from.">\r\nSubject:".$this->subject."\r\n\r\n\r\n".$this->body."\r\n.\r\n");
$talk["send"]=fgets($SMTPIN,256);
//CLOSE CONNECTION AND EXIT ... 
fputs ($SMTPIN, "QUIT\r\n"); 
fclose($SMTPIN); 
// 
} 
return $talk;
} 
}
?>

index.php

<?php
include('SMTPconfig.php');
include('SMTPClass.php');
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$to = $_POST['to'];
$from = $_POST['from'];
$subject = $_POST['sub'];
$body = $_POST['message'];
$SMTPMail = new SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $subject, $body);
$SMTPChat = $SMTPMail->SendMail();
}
?>
<form method="post" action="">
To:<input type="text" name="to" />
From :<input type='text' name="from" />
Subject :<input type='text' name="sub" />
Message :<textarea name="message"></textarea>
<input type="submit" value=" Send " />
</form>
于 2012-11-27T06:14:23.287 に答える
0

PHPのmail()関数を使用するか、PHPmailer (ここからダウンロード) のようなクラスを使用できます。後者の方が良い結果が得られました。

<?php

require_once('../class.phpmailer.php');

$mail             = new PHPMailer(); // defaults to using php "mail()"

$body             = file_get_contents('contents.html');
$body             = preg_replace('/[\]/','',$body);

$mail->SetFrom('name@yourdomain.com', 'First Last');

$mail->AddReplyTo("name@yourdomain.com","First Last");

$address = "whoto@otherdomain.com";
$mail->AddAddress($address, "John Doe");

$mail->Subject    = "PHPMailer Test Subject via mail(), basic";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}

?>

これは非常に使いやすく、最小限の設定で済みます。$_POST受信者のアドレスなどを設定するために使用できます。最初に電子メール アドレスを検証することをお勧めします。PHP検証のjavascriptを使用する

于 2012-11-27T06:52:21.823 に答える