我有什么遗失的东西吗?我搜索得很高,很低,而且我不确定我的代码有什么问题。我也是使用公共而不是邮件吗?
<?php
require_once('phpmailer.php');
class Mail extends PhpMailer
{
// Set default variables for all new objects
public $mail = IsSMTP;
public $From = 'register@lolvoid.net23.net';
public $FromName = SITETITLE;
public $Host = 'smtp.gmail.com';
public $port = 587;
public $Mailer = 'smtp';
public $SMTPAuth = true;
public $Username = 'email@gmail.com';
public $Password = 'password';
public $SMTPSecure = 'tls';
public $WordWrap = 75;
public function subject($subject)
{
$this->Subject = $subject;
}
public function body($body)
{
$this->Body = $body;
}
public function send()
{
$this->AltBody = strip_tags(stripslashes($this->Body))."\n\n";
$this->AltBody = str_replace(" ", "\n\n", $this->AltBody);
return parent::send();
}
}
这是我目前的代码,问题尚未解决。有什么新想法吗?
答案 0 :(得分:0)
最有可能是一个港口。
public $port = '4587';
如果您尝试在端口465上配置SMTP服务器(使用SSL / TLS) 和端口587(使用STARTTLS),但仍然无法发送 邮件,尝试配置SMTP以使用端口25(使用SSL / TLS)。
Apple Mail用户:有时,Mail可能会误解您的SMTP服务器 设置。如果您目前有'smtp.gmail.com:username@gmail.com' 您的设置的“发送邮件服务器:”字段,请尝试 将字段更改为“smtp.gmail.com”并保存设置。
https://support.google.com/mail/answer/78775?hl=en
你混合了465和587个端口。
如果仍然无效,您可以尝试调试连接。例如,请参阅PHPMailer only sends email when SMTPDebug = true。
另外,来自文档:
/**
* SMTP class debug output mode.
* Debug output level.
* Options:
* * `0` No output
* * `1` Commands
* * `2` Data and commands
* * `3` As 2 plus connection status
* * `4` Low-level data output
* @var integer
* @see SMTP::$do_debug
*/
public $SMTPDebug = 0;
用它来找出问题所在。它会告诉你它停在哪里。
答案 1 :(得分:0)
端口应 587 而不是4587。
以下是默认的Gmail SMTP设置;
你能否改变一下
public $mail = 'IsSMTP()'
以下内容:
public $mail = IsSMTP();
答案 2 :(得分:0)
将SMTP端口更改为安全端口:465