我试图从本地主机发送邮件。 但是我无法从本地主机发送邮件 所以有人能告诉我如何重新配置我的xampp从本地主机发送邮件
当前回答
您可以测试发送邮件在您的PC没有互联网
你应该使用剪纸这个简单的应用程序来测试发送邮件。你不需要配置任何东西。
只需运行它,并尝试测试发送邮件:
test_sendmail.php
<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>
你会看到这个:
我希望你今天过得愉快。 你可以在Youtube上找到我的更多教程
欢呼!
其他回答
您可以测试发送邮件在您的PC没有互联网
你应该使用剪纸这个简单的应用程序来测试发送邮件。你不需要配置任何东西。
只需运行它,并尝试测试发送邮件:
test_sendmail.php
<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>
你会看到这个:
我希望你今天过得愉快。 你可以在Youtube上找到我的更多教程
欢呼!
你必须在你的服务器上配置SMTP。你可以通过谷歌免费使用G Suite SMTP:
<?php
$mail = new PHPMailer(true);
// Send mail using Gmail
if($send_using_gmail){
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "your-gmail-account@gmail.com"; // GMAIL username
$mail->Password = "your-gmail-password"; // GMAIL password
}
// Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";
try{
$mail->Send();
echo "Success!";
} catch(Exception $e){
// Something went bad
echo "Fail :(";
}
?>
点击这里阅读更多关于PHPMailer的信息。
除了所有的答案,请注意sendmail.ini文件中:
auth_password = this-is-Not-your-Gmail-password
由于新的谷歌安全问题,您应该按照以下步骤为此目的设置应用程序密码:
在安全选项卡中转到https://accounts.google.com/ 使用任何可用选项打开两步验证 回到安全选项卡(在同一部分下,两步验证最初被发现),并创建App-password(在选择app下拉菜单中,您可以选择“其他”)
最后,请注意,如果您只是使用一个应用程序,而不是自己编写php代码,则可能需要将Sendmail设置为首选选项。
作为管理员运行XAMPP还应该解决任何文件访问问题。
您必须为此定义一个SMTP服务器和端口。除了从实时主机发送邮件。
这是一个有用的链接。
注意:该端口应未使用。请小心点,Some 像Skype这样的应用程序使用默认端口和阻止 发送邮件。
我尝试了许多方法从XAMPP Localhost发送邮件,但由于XAMPP没有SSL证书,我的电子邮件请求被Gmail或类似的SMTP服务提供商阻止。
然后我使用MailHog本地smtp服务器,你需要做的就是运行它。 Localhost:1025是SMTP服务器, Localhost:8025是邮件服务器,在那里您可以检查您发送的电子邮件。
这是我的代码:
require_once "src/PHPMailer.php";
require_once "src/SMTP.php";
require_once "src/Exception.php";
$mail = new PHPMailer\PHPMailer\PHPMailer();
//Server settings
$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = 'localhost'; // Set the SMTP server to send through
$mail->Port = 1025; // TCP port to connect to
// $mail->Username = ''; // SMTP username
// $mail->Password = ''; // SMTP password
// $mail->SMTPAuth = true; // Enable SMTP authentication
// $mail->SMTPSecure = 'tls'; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
//Recipients
$mail->setFrom('testtoo@testto.com', 'Mailer');
$mail->addAddress('testtoo@webbamail.com', 'Joe User'); // Add a recipient
// Content
$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 "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
MailHog Github Repository链接
推荐文章
- PHP中的echo和print有什么不同?
- 我如何使用Guzzle发送一个POST请求JSON?
- 如何POST JSON数据与PHP卷曲?
- 在PHP中使用getter和setter而不是函数或简单的公共字段有什么优点?
- 非加密用途的最快哈希?
- 将变量传递到下一页
- 使用curl在PHP中获取HTTP代码
- 如何删除数组元素,然后重新索引数组?
- 如何从PHP调用JavaScript函数?
- 确定PHP中是否存在数组键的更快更好的方法是什么?
- \(反斜杠)在PHP(5.3+)中做什么?
- 匿名递归PHP函数
- SSL证书错误:无法获得本地颁发者证书
- 正确判断日期字符串是否是该格式的有效日期
- 将UNIX时间戳转换为格式化日期字符串