已经有 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;
}