SMTP与gmail错误。我没有收到电子邮件

时间:2016-05-31 23:57:22

标签: php

我有什么遗失的东西吗?我搜索得很高,很低,而且我不确定我的代码有什么问题。我也是使用公共而不是邮件吗?

    <?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("&nbsp;", "\n\n", $this->AltBody);
        return parent::send();
    }
}

这是我目前的代码,问题尚未解决。有什么新想法吗?

3 个答案:

答案 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设置;

  • Gmail SMTP服务器地址:smtp.gmail.com
  • Gmail SMTP用户名:您的 完整的Gmail地址(例如yourusername@gmail.com)
  • Gmail SMTP密码:您的Gmail密码
  • Gmail SMTP端口(TLS):587
  • Gmail SMTP端口(SSL):465
  • 需要Gmail SMTP TLS / SSL:是

你能否改变一下

public $mail = 'IsSMTP()'

以下内容:

public $mail = IsSMTP();

答案 2 :(得分:0)

将SMTP端口更改为安全端口:465