2016-08-11 26 views
1

私のデータを自分のPHPコードを通過させ、自分のGmailアカウントから別のメールアドレスにメールしてみようとしています。しかし、そうすることに問題がある。ここで SMTPサーバーを使用してフォームデータHTMLを電子メールに送信

は私のHTMLコードです:

<form name="contactform" method="post" action="sendMail.php"> 

<table width="400px"> 

<tr> 

<td valign="top"> 

    <label for="first_name">First Name *</label> 

</td> 

<td valign="top"> 

    <input type="text" name="first_name" maxlength="50" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

    <label for="last_name">Last Name </label> 

</td> 

<td valign="top"> 

    <input type="text" name="last_name" maxlength="50" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

    <label for="email">Email *</label> 

</td> 

<td valign="top"> 

    <input type="text" name="email" maxlength="80" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

    <label for="telephone">Phone</label> 

</td> 

<td valign="top"> 

    <input type="text" name="telephone" maxlength="30" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

    <label for="comments">Comments *</label> 

</td> 

<td valign="top"> 

    <textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea> 

</td> 

</tr> 

<tr> 

<td colspan="2" style="text-align:center"> 

    <input type="submit" value="SUBMIT"> 

</td> 

</tr> 

</table> 

</form> 

PHPコードsendMail.php

<?php 

require 'PHPMailer-master/PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

$mail->isSMTP(); 
$mail->Host = 'smtp.gmail.com'; 
$mail->SMTPAuth = true; 
$mail->Username = '[email protected]'; 
$mail->Password = 'H********'; 
$mail->SMTPSecure = 'tls'; 
$mail->Port = 587; 
$mail->SMTPDebug = 1; 

$mail->From = '[email protected]'; 
$mail->FromName = 'TEST'; 
$mail->addAddress('[email protected]'); 

$errors = ''; 

if(empty($_POST['name']) || 
    empty($_POST['email']) || 
    empty($_POST['phone']) || 
    empty($_POST['message'])) 
{ 
    $errors .= "\n Error: all fields are required"; 
} 
$name = $_POST['name']; 
$email_address = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 
if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", 
$email_address)) 
{ 
    $errors .= "\n Error: Invalid email address"; 
} 

if(empty($errors)) 
{ 
$to = $myemail; 



mail($to, $subject, $message, $headers); 

$email_subject = "Request Additional Information: $name"; 
$email_body = "You have received a new request for additional information. ". 
" Here are the details:\n Name: $name \n ". 
"Email: $email_address\n Phone: $phone\n Message: \n $message"; 
$headers = "From: $myemail\n"; 
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers); 
//redirect to the 'thank you' page 
header('Location: contact-form-thank-you.html'); 
} 


?> 

私はそれを送信するとき、それは電子メールユーザーから来て、なぜ誰かが考え出すことで私を助けることができます私のフォームから入力したもので、Gmailのメールアドレスから入力したものではありません。

+1

2つのコードがあります。最初は 'phpMailer'です。もう1つはPHPの' mail'関数を使用しています。最初の 'phpMailer'は何も送信しません。ここの例はhttps://github.com/PHPMailer/PHPMailer/tree/master/examplesに従ってください – cmorrissey

答えて

0

ここでは、あなたのHTMLコード

<form name="contactform" method="post" action="sendMail.php"> 

<table width="400px"> 

<tr> 

<td valign="top"> 

    <label for="first_name">First Name *</label> 

</td> 

<td valign="top"> 

    <input type="text" name="first_name" maxlength="50" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

    <label for="last_name">Last Name </label> 

</td> 

<td valign="top"> 

    <input type="text" name="last_name" maxlength="50" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

    <label for="email">Email *</label> 

</td> 

<td valign="top"> 

    <input type="email" name="email" maxlength="80" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

    <label for="telephone">Phone</label> 

</td> 

<td valign="top"> 

    <input type="text" name="telephone" maxlength="30" size="30"> 

</td> 

</tr> 

<tr> 

<td valign="top"> 

    <label for="comments">Comments *</label> 

</td> 

<td valign="top"> 

    <textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea> 

</td> 

</tr> 

<tr> 

<td colspan="2" style="text-align:center"> 

    <input type="submit" value="SUBMIT"> 

</td> 

</tr> 

</table> 

</form> 

ここにあなたのsendMail.php

<?php 
$first_name="First Name : ".$_POST['first_name']."<br>"; 
$last_name="Last Name :". $_POST['last_name']. "<br>"; 
$your_email="Your Email :".$_POST['email']. "<br>"; 
$telephone="Your Telephone :".$_POST['telephone']. "<br>"; 
$your_message="Your Comments :".$_POST['comments']. "<br>"; 
$message = " 
\n $first_name \n 
\n $last_name \n 
\n $your_email \n 
\n $telephone \n 
\n $your_message \n 
"; 
echo $message; 
include "PHPMailer_5.2.4/class.phpmailer.php"; 


$mail = new PHPMailer; 
$mail->isSMTP();          
$mail->Host = 'smtp.gmail.com'; 

$mail->SMTPAuth = true;   
$mail->Username = '***@gmail.com'; 
$mail->Password = 'gmailpassword';   
$mail->SMTPSecure = 'tls';    
$mail->Port = 587;      
$mail->setFrom('[email protected]', 'Mailer'); 
$mail->addAddress($your_email, 'Name'); 
$mail->addAttachment('fileaddress');  
$mail->isHTML(true);        
$mail->Subject = 'Here is the subject'; 
$mail->Body = $message; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 
?> 

はこのその作業罰金を試してみてください..!

関連する問題