【问题标题】:How can I send confirmation email from localhost using php email()如何使用 php email() 从本地主机发送确认电子邮件
【发布时间】:2017-07-16 22:36:23
【问题描述】:
php.ini file
SMTP = smtp.gmail.com
smtp_port = 25
sendmail_from = tuhin.edru@gmail.com
sendmail_path="\"C:\xampp\sendmail\sendmail.exe\" -t"

sendmail.ini file
smtp_server=smtp.gmail.com
smtp_port=25
auth_username=tuhin.edru@gmail.com
auth_password=0123456789
force_sender=tuhin.edru@gmail.com



$dbhost="localhost";
$dbuser="root";
$dbpass="";
$dbname="sis";
$conn=mysqli_connect("$dbhost","$dbuser","$dbpass") or die("could not connect to mysql");

mysqli_select_db($conn,$dbname);

$username=$_POST['username'];
$email=$_POST['email'];
$password=$_POST['password'];

$q1=mysqli_query($conn,"insert into signup_tbl values('$username','$email','$password')");

if($q1)
{

    ini_set("SMTP", "smtp.gmail.com");

    $to = $email; 
    $subject = "Signup | Verification"; 
    $message = " Its a message";                   
    $header = "From: tuhin.edru@gmail.com"; 
    $sentmail = mail($to, $subject, $message, $header); 

    if($sentmail)
    {
        echo "successfully sent"
    }

}

输出:数据已上传到数据库,但无法发送电子邮件。显示错误消息说

警告:mail():无法在“smtp.gmail.com”端口 25 连接到邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置或使用 ini_set()

我该如何解决这个问题?我已经尝试过端口:587 和 465 但没有改进。请帮我解决这个问题

【问题讨论】:

  • 与您的问题没有真正的关系,但是:您正在将用户输入直接放入发送到 mysql("insert into signup_tb1 values('$username',...)") 的 SQL 查询中,因此您可能会遇到 SQL 注入攻击
  • auth_password=01913364536,您没有在问题中提供您的gmail帐户的真实密码,是吗?更新您的问题并尽快将其删除!
  • 不,这不是我的密码..@rajdeep

标签: php email phpmailer confirmation


【解决方案1】:

我强烈建议您停止使用mail() 函数。它喜欢引起各种问题。在我看来,发送电子邮件的更好方法是使用PHPMailer 库。它提供完整的 SMTP 支持和一些更酷的功能。

即使出现任何错误,当您使用具有大型社区的工具而不是旧的、很少使用的功能时,也会更容易解决您的问题。

【讨论】:

    猜你喜欢
    • 2016-11-02
    • 2015-01-03
    • 2016-07-22
    • 1970-01-01
    • 2015-04-15
    • 2015-08-22
    相关资源
    最近更新 更多