【发布时间】:2020-11-20 04:54:53
【问题描述】:
我不知道为什么它不起作用。据我了解,我的发帖请求没有被接受......所以这是我的代码
<meta charset="utf-8" type="text/html">
<?php
echo !extension_loaded('openssl')?"Not Available":"Available";
echo'<br>';
include 'PHPMailer/PHPMailerAutoload.php';
$name = $_POST['nombre'];
$mailfrom = $_POST['email'];
$context = $_POST['context'];
echo $name,$mailfrom,$context;
echo "<br>";
echo "<br>";
$subject = 'Information';
/*i'm not sure if i can use any gmail or it needs to be
registred on my server admin panel*/
$to ="my@gmail.com";
define ('GUSER','my@gmail.com');
define ('GPWD','pass');
// make a separate file and include this file in that. call this function in that file.
function smtpmailer( $mailfrom, $name, $subject, $context) {
global $error;
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 2; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
$mail->SMTPAutoTLS = false;
$mail->Host = 'ssl://smtp.gmail.com';
$mail->Port = 587;
$mail->CharSet = "UTF-8";
$mail->Username = GUSER;
$mail->Password = GPWD;
$mail->SetFrom ($mailfrom); //here it's my error
$mail->Subject = $subject;
$mail->Body = $context;
$mail->AddAddress('my@gmail.com');
if(!$mail->Send()) {
$error = 'Mail error: '.$mail->ErrorInfo;
return false;
} else {
$error = 'Message sent!';
return true;
}
}
smtpmailer();
?>
其他需要提及的重要事项。这是我的托管服务提供商给我的设置。而且我不确定我是否正确使用它们。我已经尝试了所有端口和主机,但得到了同样的错误。
我真的很感谢所有的帮助:)
【问题讨论】:
-
setForm 需要 2 个参数,第一个是您的邮件地址,第二个是描述它的文本。这里是 phpmailer 官方主页的示例:
$mail->setFrom('from@example.com', 'Your Name');并且您必须检查 $mailForm 的内容是否真的是一个字符串和一个有效的邮件地址 -
试过还是同样的错误
-
没有。
setFrom的第二个参数是可选的,如果你提供了一个无效的地址会返回false,所以你不需要提前检查,看它的返回值即可。 -
@Eduardo Rawrdríguez 当你调用函数`smtpmailer(); ` 你需要像这样传递 4 个参数 ` smtpmailer( $mailfrom, $name, $subject, $context); `
标签: php email web hosting phpmailer