0

フォーム データをメール アカウントに送信するように Swift Mailer を設定しようとしています 要するに: 私は Web サイトを持っており、それを使用して地元の都市で商品を販売しようとしています 「購入」ボタンを押すと 3 つの簡単なフォームが表示されますアクティブ ポイントは、これらのフォームに入力したデータを直接メール アカウントに送信することです. PHP の初心者である私は、この単純なスクリプトを機能させるために数日間試みましたが、失敗に終わりました。ここではメールのコードです. php:

<?php
$name=$_POST["name"];
$email=$_POST["email"];
$phone=$_POST["phone"];
if (isset ($name))
{
$name = substr($name,0,30); 
if (empty($name))
{
echo "<center><b>Invalid name<p>";
echo "<a href=index.php>Come back and fill up the form properly</a>";
exit;
}
}
else
{
$name = "Invalid name";
}
if (isset ($email))
{
$email = substr($email,0,30); //Не может быть более 20 символов
if (empty($email))
{
echo "<center><b>Email Invalid!<p>";
echo "<a href=index.php>Try again</a>";
exit;
}
}
else
{
$email = "Invalid";
}
if (isset ($phone))
{
$phone = substr($phone,0,15); 
if (empty($phone))
{
echo "<center><b>Empty message!!!<p>";
echo "<a href=index.php>Try again</a>";
exit;
}
}
else
{
$phone = "invalid";
}
$i = "invalid";
if ($name == $i AND $email == $i AND $phone == $i)
{
echo "Error! No data was transferred to the script";
exit;
}
$to = "zakaz@playpad2.ru";  
$subject = "New order ";
$message = "Name:$name::::::::::Email:$email::::::::::Phone No:$phone:::::::::;
require_once 'lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.yandex.ru', 465, 'ssl')
 ->setUsername('zakaz@playpad2.ru')
 ->setPassword('jhfy;tdjtujdyj');

$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Wonderful Subject')
  ->setFrom(array('kirabidzu@gmail.com' => 'PlayPad 2 Kids tablet order'))
  ->setTo(array('zakaz@playpad2.ru', 'zakaz@playpad2.ru' => 'A name'))
  ->setBody('Name:$name::::::::::Email:$email::::::::::Phone No:$phone:::::::::');

// Send the message
$numSent = $mailer->send($message);

if (!$numSent) {
  print "Can't send a message";
} 
echo "<center><b>Thank you<a href=index.php>Proceed</a> to continue...>";
exit;
?>"

メインページにあるフォームは次のとおりです。

<form name="form" action="mail.php" method="POST"><b>Name here </b> 
<br> <input type="text" size="70%" name="name" maxlength="45"> <br>
<b>Phone No </b> 
<br> <input type="text" size="70%" name="phone" maxlength="15"> <br>
<b>E-Mail </b> 
<br> <input type="text" size="70% " name="email" maxlength="45"> <br>
 <input type="submit"><div class="button"></div>

助けてください!

smtp サーバー ポートを変更すると、新しいエラーが表示されます: PHP Fatal error: Uncaught exception 'Swift_TransportException' with message 'Expected response code 250 but got code "553", with message "553 .\r\n"' メッセージがサイトから送信された場合、なぜ「差出人」フィールドが必要なのか理解できません?? その人がフォームに記入するだけで、私はその人が記入したデータを電子メールで受け取りたいですか? 「差出人」欄には何を書けばよいですか?

UPD: 最後にメールが送信されます!!! 「差出人」と「宛先」のメール アドレスを同じにしました

4

2 に答える 2

0

次の行に終了二重引用符がないようです:

$message = "Name:$name::::::::::Email:$email::::::::::Phone No:$phone:::::::::;

次のようにする必要があります。

$message = "Name:$name::::::::::Email:$email::::::::::Phone No:$phone:::::::::;";

また、メール アカウント情報を投稿するべきではありませんでした。アカウントのパスワードを変更する時が来ました。

于 2013-10-06T14:47:22.580 に答える