Php 使用gmail SMTP发送邮件(修复某人的代码)

Php 使用gmail SMTP发送邮件(修复某人的代码),php,function,email,smtp,fsockopen,Php,Function,Email,Smtp,Fsockopen,这可能很长,所以我很抱歉 最近,我决定尝试修复一个计算机实验室用来发送电子邮件的代码。在他们最近试图更改发送电子邮件地址之前,它一直有效。我的问题?我对这种类型的编码以及它们更改了哪些代码片段知之甚少。我找到了他们用来发送邮件的功能。我希望有人能帮我指出问题所在。或者我可以改变什么来让它工作。我想这是因为从来都不需要密码。但是我不明白写这段代码的人到底在做什么 这是我正在查看的代码 function SendMail($ToName, $ToEmail, $FromName, $FromEmai

这可能很长,所以我很抱歉

最近,我决定尝试修复一个计算机实验室用来发送电子邮件的代码。在他们最近试图更改发送电子邮件地址之前,它一直有效。我的问题?我对这种类型的编码以及它们更改了哪些代码片段知之甚少。我找到了他们用来发送邮件的功能。我希望有人能帮我指出问题所在。或者我可以改变什么来让它工作。我想这是因为从来都不需要密码。但是我不明白写这段代码的人到底在做什么

这是我正在查看的代码

function SendMail($ToName, $ToEmail, $FromName, $FromEmail, $Subject, $Body, $Header)
{
$SMTP = fsockopen("smtp.gmail.com", 465);

$InputBuffer = fgets($SMTP, 1024);

fputs($SMTP, "HELO $smtp.gmail.com\n");
$InputBuffer = fgets($SMTP, 1024);
fputs($SMTP, "MAIL From: $FromEmail\n");
$InputBuffer = fgets($SMTP, 1024);
fputs($SMTP, "RCPT To: $ToEmail\n");
$InputBuffer = fgets($SMTP, 1024);
fputs($SMTP, "DATA\n");
$InputBuffer = fgets($SMTP, 1024);
fputs($SMTP, "$Header");
fputs($SMTP, "From: $FromName <$FromEmail>\n");
fputs($SMTP, "To: $ToName <$ToEmail>\n");
fputs($SMTP, "Subject: $Subject\n\n");
fputs($SMTP, "$Body\r\n.\r\n");
fputs($SMTP, "QUIT\n");
$InputBuffer = fgets($SMTP, 1024);

fclose($SMTP);
} 

有没有人能给我指出正确的方向。或者有人能解释一下如何让程序输出错误信息吗?我在谷歌上搜索了一下,找到了谈论它的话题,但我还是迷路了。既然我是新手,那么只编写一个新代码而不去尝试修复它会更好吗?非常感谢您的帮助,因为我对这类代码略知一二。我能读懂它,但。。。我不理解深度函数

重写SendMail函数内容并使用类而不是手动套接字交互可能更容易。它可以以不同的方式发送电子邮件-邮件功能,sendmail或SMTP。它易于配置,并且在SMTP会话期间出错时会引发异常。只需将其放在您网站的某个位置,然后查看随软件包提供的示例。

我感谢您的回答。谢谢你试图帮助我,这正是我一直在寻找的。但恐怕我还是迷路了一点。如果我将函数更改为。。。函数SendMail{此处的所有默认phpMailer信息}如果我填写了默认phpMailer信息,它应该在我调用函数SendMail时发送电子邮件。正确吗?我知道我需要从differen.php页面调用某些变量。我需要的两个变量是$ToName和$ToEmail。电子邮件和名称取决于打开的工单。因此,唯一无法修复的是电子邮件地址和姓名。
$fname = mysql_result($results, 0, "fname");
$FromName = "Support Center";
$FromEmail = "JonStevens93@hotmail.com";
$Subject = "Computer Finished";
$Body = "Your computer is fixed.";
$Header = "Computer";