我是PHP开发的初学者,我正在学习使用xampp
从localhost发送电子邮件的教程。最初我可以使用postfix
和gmail发送电子邮件,但在2周后,它再也无法使用了。
我通过使用以下代码行修改postfix
文件来配置mta
main.cf
:
in main.cf file
# Gmail SMTP
relayhost=smtp.gmail.com:587
# Enable SASL authentification in the Postfix SMTP
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/
sasl_passwd
smtp_sasl_security_options=noanonymous
smtp_sasl_mechanism_filter=plain
# Enable TLS i.e. SSL
smtp_use_tls=yes
smtp_tls_security_level=encrypt
tls_random_source=dev:/dev/urandom
我已设置允许在gmail上启用较少安全的应用。我还制作包含电子邮件帐户及其密码的sasl_passwd
文件
smtp.gmail.com:587 fake@gmail.com:password123456
它可以完美地工作大约1周,然后它停止工作,我从gmail收到一封关于重要安全警报的电子邮件,但在获得许可后,它可以再次正常工作。
但是现在,在那之后的两周内,我无法使用postfix
再次发送电子邮件。并且gmail没有再次通知。在终端/命令行中,我一直尝试使用此命令发送和发送电子邮件:
sudo postfix stop
sudo postfix start
sudo postfix reload
date | mail -s testing someemail@gmail.com
但它无法发送电子邮件。
这是发送电子邮件时的PHP代码
<?php
class email {
// membuat token untuk konfirmasi email
function generateToken ($length) {
$characters = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
// mendapatkan panjang karakter
$charsLength = strlen(($characters));
$token = "";
for($i = 0; $i < $length; $i++) {
$token .= $characters[rand(0,$charsLength-1)];
}
return $token;
}
// membuka template isi email dari html file untuk konfirmasi registrasi
function confirmationTemplate() {
$file = fopen("templates/confirmationTemplate.html", "r") or die ("unable to open file");
$template = fread($file, filesize("templates/confirmationTemplate.html"));
fclose($file);
return $template;
}
// membuka template isi email dari html file untuk melakukan reset password
function resetPasswordTemplate() {
$file = fopen("templates/resetPasswordTemplate.html", "r") or die ("unable to open file");
$template = fread($file, filesize("templates/resetPasswordTemplate.html"));
fclose($file);
return $template;
}
// mengirim email dengan PHP
function sendEmail($details) {
// isi informasi email
$subject = $details["subject"];
$to = $details["to"];
$fromName = $details["fromName"];
$fromEmail = $details["fromEmail"];
$body = $details["body"];
//email header
$headers = "MIME-Version: 1.0"."\r\n";
$headers .= "Content-type:text/html;content=UTF-8"."\r\n";
$headers .= "From: ".$fromName."<".$fromEmail.">"."\r\n";
// PHP function send email
mail($to,$subject,$body,$headers);
}
}
?>
这里出了什么问题?