1

已经有 2 天的时间让电子邮件无法正常工作。

我正在使用vestacp,它在所有情况下都很完美,但无法通过PHP脚本发送电子邮件。我也使用过传统的 mail() 函数、SMTP 和 swift mailer,但似乎没有任何效果。

我已经在 VestaCP 中使用Let's encrypt SSL设置了一个域,并在域面板中使用了 DNS 中的A 记录。并在邮件部分创建了info@domain.com,这在 RoundCube 中由vestacp 即 xxxx/webmail 工作正常

使用函数和 SMTP 时我没有收到任何错误mail()(电子邮件没有明显发送)。

Codeigniter 邮件功能- (无错误,无电子邮件)

$this->load->library('email');

$this->email->from('info@domain.com', 'Web Application');
$this->email->to($email);
$this->email->subject('domain.com - Change Password Link');

$message = base_url().'auth/redirect';
$message .= ''.' '.'Click on link to reset password. Thank you';


$this->email->message($message);            
$this->email->set_mailtype("html");
$this->email->send();

使用 Swift 邮件程序时,我无法连接 TLS 加密。

Swiftmailer -(错误 - 无法连接 TLS 加密,没有电子邮件)

try {
    $mail_host = 'ec2-x-x-xxx-xxx.ap-south-1.compute.amazonaws.com'; // Yup its aws
    $mail_port = '587'; // tried 25, 465
    $mail_user = 'info@domain.com';
    $mail_pass = 'xxx';
    // Create the Transport
    $transport = (new Swift_SmtpTransport($mail_host, $mail_port, 'tls'))
        ->setUsername($mail_user)
        ->setPassword($mail_pass);

    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);

    // Create a message
    $message = (new Swift_Message("Web App"))
        ->setFrom(array($mail_user => "Web app"))
        ->setTo([$to => ''])
        ->setSubject($subject)
        ->setBody($this->load->view("email/email_template", $data, TRUE), 'text/html');

    //Send the message
    $result = $mailer->send($message);
    if ($result) {
        return true;
    }
} catch (\Swift_TransportException $Ste) {
    $this->session->set_flashdata('error', $Ste->getMessage());
    return false;
} catch (\Swift_RfcComplianceException $Ste) {
    $this->session->set_flashdata('error', $Ste->getMessage());
    return false;
}
4

0 回答 0