解决 :问题是,通过hostgator使用服务,出于某种原因,用户必须使用主要dsn名称而不是SMTP域名login。
我正在使用简单的PHP mail()函数发送电子邮件,它工作正常,但它不需要login到SMPT服务器。 当我移动到PHPMailer库时,我编写了这个代码来发送电子邮件,但是当尝试执行此login时,我有超时。 根据hostgator的信息,SMTP服务器(使用SSL / TSL)在端口465 。 所以我写道:
$mail = new PHPMailer; $mail->SMTPDebug = 3; $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'mail.mydomain.com'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = '[email protected]'; // SMTP username $mail->Password = 'pass'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 465; // TCP port to connect to $mail->setFrom('[email protected]', 'my name'); $mail->addAddress('[email protected]', 'someone'); // Add a recipient $mail->addReplyTo('[email protected]', 'my name'); $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'subject'; $mail->Body = 'msg body <b>bold!</b>'; $mail->AltBody = 'Corpo alternativo caso o primeiro não seja exibido'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; }
但是,当这个PHP文件被调用,除了没有显示在代码之前的echo ,它也等待了300秒打开超时错误的模态警告我。 提前致谢。
我认为答案是在你的代码。 你有$mail->Host = 'mail.mydomain.com'; 一定要把所有这些切换到实际的域名。 你必须使用你的www.com网站域名。
以下是错误的。
$mail->Host = 'mail.mydomain.com'; // Specify main and backup SMTP servers
我不惊讶它不会发送。 将所有值与实际string交换到您的网站。