dsam70528 2015-10-03 20:30
浏览 41
已采纳

安装了postfix后,我的脚本无法正常发送电子邮件[重复]

This question already has an answer here:

Hello i made this script:

index.php:

<table width="400" border="0" align="center" cellpadding="3" cellspacing="1"><tr><td><strong>Whitelist Request </strong></td></tr></table><table width="400" border="0" align="center" cellpadding="0" cellspacing="1"><tr><td><form name="form1" method="post" action="send_whitelist.php"><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td width="16%">Username</td><td width="2%">:</td><td width="82%"><input name="username" type="text" id="username" size="50"></td></tr><tr><td>Paysafe</td><td>:</td><td><input name="paysafe" type="text" id="paysafe" size="50"></td></td><tr></tr><td>Name</td><td>:</td><td><input name="name" type="text" id="name" size="50"></td></tr><tr><td>Email</td><td>:</td><td><input name="customer_mail" type="text" id="customer_mail" size="50"></td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td><input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Reset"></td></tr></table></form></td></tr></table>

Email Sender:

<?php

// Contact subject
$subject ="Minecraft Server Whitelist Request"; 

// Details
$message="Name: $name 
 Username: $username 
 Paysafe: $paysafe  ";

// Mail of sender
$mail_from="$customer_mail"; 

// From 
$header="from: $name <$mail_from>";

// Enter your email address
$to ='n************@gmail.com';
$send_contact=mail($to,$subject,$message,$header);

// Check, if message sent to your email 
// display message "We've recived your information"
if($send_contact){
echo "I have received your whitelist request. Please wait.";
}
else {
echo "ERROR";
}
?>

The contents of the textboxes doesen't appear in the mail. Any ideas?

</div>
  • 写回答

1条回答 默认 最新

  • douhui7136 2015-10-03 20:38
    关注

    I normally use PHPMailer to send emails with php. Here's and example to send an email via gmail using an html file as body and attaching an image:

    <?php
    /**
     * This example shows settings to use when sending via Google's Gmail servers.
     */
    
    //SMTP needs accurate times, and the PHP time zone MUST be set
    //This should be done in your php.ini, but this is how to do it if you don't have access to that
    date_default_timezone_set('Etc/UTC');
    
    require '../PHPMailerAutoload.php';
    
    //Create a new PHPMailer instance
    $mail = new PHPMailer;
    
    //Tell PHPMailer to use SMTP
    $mail->isSMTP();
    
    //Enable SMTP debugging
    // 0 = off (for production use)
    // 1 = client messages
    // 2 = client and server messages
    $mail->SMTPDebug = 2;
    
    //Ask for HTML-friendly debug output
    $mail->Debugoutput = 'html';
    
    //Set the hostname of the mail server
    $mail->Host = 'smtp.gmail.com';
    // use
    // $mail->Host = gethostbyname('smtp.gmail.com');
    // if your network does not support SMTP over IPv6
    
    //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
    $mail->Port = 587;
    
    //Set the encryption system to use - ssl (deprecated) or tls
    $mail->SMTPSecure = 'tls';
    
    //Whether to use SMTP authentication
    $mail->SMTPAuth = true;
    
    //Username to use for SMTP authentication - use full email address for gmail
    $mail->Username = "username@gmail.com";
    
    //Password to use for SMTP authentication
    $mail->Password = "yourpassword";
    
    //Set who the message is to be sent from
    $mail->setFrom('from@example.com', 'First Last');
    
    //Set an alternative reply-to address
    $mail->addReplyTo('replyto@example.com', 'First Last');
    
    //Set who the message is to be sent to
    $mail->addAddress('whoto@example.com', 'John Doe');
    
    //Set the subject line
    $mail->Subject = 'PHPMailer GMail SMTP test';
    
    //Read an HTML message body from an external file, convert referenced images to embedded,
    //convert HTML into a basic plain-text alternative body
    $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
    
    //Replace the plain text body with one created manually
    $mail->AltBody = 'This is a plain-text message body';
    
    //Attach an image file
    $mail->addAttachment('images/phpmailer_mini.png');
    
    //send the message, check for errors
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }
    

    TIPS:

    1 - Check other PHPMailer examples.
    2 - PHPMailer Troubleshooting.
    3 - Set SMTPDebug = 2 or higher, to see what the remote SMTP server says.
    4 - You may have to enable less secure apps on you gmail account.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?