我正在尝试将PHPMailer与我的网站上的联系表单一起使用。当我在Mailtrap本地时,我得到了它的工作。我用Godaddy将我的网站移到了网上,现在它无法正常工作。我甚至无法将联系表单发送到示例Mailtrap站点,更不用说我的Gmail(我想去的地方)。任何建议都会有所帮助。
我将以下代码作为PHP函数运行
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
function send_email($email, $subject, $message, $alt_message, $headers){
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = Email::SMTP_HOST;
$mail->Username = Email::SMTP_USER;
$mail->Password = Email::SMTP_PASSWORD;
$mail->Port = Email::SMTP_PORT;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->setFrom('no-reply@email.ca', 'Admin');
$mail->addAddress($email);
$mail->Subject = $subject;
$mail->Body = $message;
$mail->AltBody = $alt_message;
if(!$mail->send()){
return false;
}else{
return true;
}
}
该代码然后链接到我的具有我的电子邮件模板和所有变量输入的类
class Email{
const SMTP_HOST = 'smtp.mailtrap.io';
const SMTP_PORT = 2525;
const SMTP_USER = '******';
const SMTP_PASSWORD = '*******';
function validate_email_temp($email, $message, $first_name,
$last_name){
return "long html email markup"
这对Mailtrap来说非常有用,因为它是本地的,现在我将它移动到现在我无法使用Mailtrap或Gmail。
当我尝试使用Gmail运行时,我会得到:
Fatal error: Uncaught PHPMailer\PHPMailer\Exception: SMTP connect() failed.
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting in
C:\xampp\htdocs\lib\vendor\phpmailer\phpmailer\src\PHPMailer.php:1726 Stack
trace: #0
C:\xampp\htdocs\lib\vendor\phpmailer\phpmailer\src\PHPMailer.php(1481):
PHPMailer\PHPMailer\PHPMailer->smtpSend('Date: Mon, 12 F...', 'This is a
multi...') #1
C:\xampp\htdocs\lib\vendor\phpmailer\phpmailer\src\PHPMailer.php(1320):
PHPMailer\PHPMailer\PHPMailer->postSend() #2
C:\xampp\htdocs\lib\functions.php(68): PHPMailer\PHPMailer\PHPMailer-
>send() #3 C:\xampp\htdocs\lib\Contact.php(68):
send_email('email@gma...', 'test', '<html>\r\n<head><...', 'This is a
messa...', '') #4
C:\xampp\htdocs\public\inc\templates\contact_forms.php(4): Contact-
>contacts('gen', 'asdf@asdf', 'test', 'test', 'test', 'test') #5 {main}
thrown in C:\xampp\htdocs\lib\vendor\phpmailer\phpmailer\src\PHPMailer.php
on line 1726
当我尝试从Godaddy运行Gmail或Mailtrap时,没有任何反应只是坐在那里试图运行。没有错误或任何事情。
任何帮助将不胜感激。谢谢!!
这篇文章看起来类似于帖子“PHPMailer GoDaddy Server SMTP Connection Wasfused”,它不是我能说的,因为那个人正在处理Godaddy托管的电子邮件而我正在使用Gmail。我确实尝试匹配他们的一些代码,但它不适用于Gmail。
答案 0 :(得分:0)
所以我联系了Godaddy,他们为我提供了一个在共享服务器上运行PHPMailer的测试脚本。脚本运行正常,这让我更加困惑。
经过一番搜索后,我发现Godaddy阻止了SMTP,我从脚本中的一个选项中确认了这一点。我将我的代码从SMTP更改为PHP mail()并且它有效。
let array = [
{
id: 123456, user: 'xyz'
},
{
id:9787389023, user: 'zyx'
},
{
id: 123456, user: 'che'
}
]
let newArray = array.filter((element) => element.id === 123456)
console.log(newArray)
绝对的
$ MAIL-&GT; isSMTP();
现在发送电子邮件需要比SMTP更长的时间,但它不会太长而且有效,现在这一切都很重要。
我把他们给我的文件放在网上(30天临时)如果有人可以使用它。 https://ufile.io/2kqkm
private static async Task<Stream> GetByteArrayAsync(Uri uri, CancellationToken token) {
using (HttpClient httpClient = new HttpClient()) {
HttpResponseMessage response = await httpClient.GetAsync(uri, token);
return await response.Content.ReadAsStreamAsync();
}
}
谢谢大家的帮助!!