但每当我提交执行文件时,电子邮件都不会发送到我的Gmail。
我已经在xampp中更改了php.ini,其中sendmail_path不以“;”开头。
在sendemail.ini中,我也将smtpp_server更改为smtp.gmail.com。以及到587的smtp端口(也试过了465)。最后我将auth_username和auth_password更改为我的电子邮件和pw。但代码仍然无效。
我正在使用Windows 8
<?php
mail('hello.3i@gmail.com', 'sample mail', 'sample content', 'From: freak@freakzoid.com');
?>
答案 0 :(得分:0)
如果您想从localhost发送邮件,则应通过以下方式配置sendmail.ini。
您可以使用sendmail包sendmail从localhost发送邮件 包是在XAMPP中构建的。因此,如果您使用XAMPP,那么您可以 轻松从localhost发送邮件。
例如,您可以配置
C:\xampp\php\php.ini
和c:\xampp\sendmail\sendmail.ini
用于gmail发送邮件。在C:\xampp\php\php.ini
找到extension=php_openssl.dll
并删除 从该行的开头分号以使SSL工作 ghost for localhost。在php.ini文件中找到
[mail function]
并更改SMTP=smtp.gmail.com smtp_port=587 sendmail_from = my-gmail-id@gmail.com sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
现在打开
C:\xampp\sendmail\sendmail.ini
。替换所有现有的 sendmail.ini中的代码,代码如下[sendmail] smtp_server=smtp.gmail.com smtp_port=587 error_logfile=error.log debug_logfile=debug.log auth_username=my-gmail-id@gmail.com auth_password=my-gmail-password force_sender=my-gmail-id@gmail.com
现在你已经完成了!!用邮件功能创建php文件并发送邮件 来自localhost。
PS:不要忘记更换 my-gmail-id 和 my-gmail-password 在上面的代码中。此外,如果您不要忘记删除重复的密钥 从上面复制设置。例如,注释以下行if 还有另一个 sendmail_path : php.ini中的
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
文件还记得使用XAMMP控制面板重启服务器 这些变化生效。
答案 1 :(得分:0)
应该配置SMTP。
C:\xampp\sendmail\sendmail.ini
和C:\xampp\php\php.ini
此外,您可以轻松使用PHPMailer:
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@example.com'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
$mail->addAddress('ellen@example.com'); // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$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';
}