【问题标题】:Sending mail with gmail SMTP (Fixing someone's code)使用 gmail SMTP 发送邮件(修复某人的代码)
【发布时间】:2015-06-05 13:54:10
【问题描述】:

这可能会很长,所以很抱歉。

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

这是我正在查看的代码。

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);
} 

他们按下一个按钮,它就会发送电子邮件。或者至少运行该功能。 我发现当他们按下按钮时会调用某些变量。其他变量是从存储个人信息的数据库中调用的。 (将电子邮件更改为随机电子邮件以发布此问题。)

$fname = mysql_result($results, 0, "fname");
$FromName = "Support Center";
$FromEmail = "JonStevens93@hotmail.com";
$Subject = "Computer Finished";
$Body = "Your computer is fixed.";
$Header = "Computer";

谁能指出我正确的方向。或者有人可以解释一下如何让程序输出错误信息吗?我用谷歌搜索并找到了谈论它的话题,但我仍然迷路了。因为我是新手,所以只编写一个新代码甚至不尝试修复它会更好吗?任何帮助都非常感谢,因为我对这种类型的代码还是个新手。我可以阅读并理解它,但是......我不了解深度功能。

【问题讨论】:

    标签: php function email smtp fsockopen


    【解决方案1】:

    重写 SendMail 函数内容并使用PHPMailer 类而不是手动套接字交互可能更容易。它可以通过不同的方式发送电子邮件——mail() 函数、sendmail 或 SMTP。它很容易配置,并且在 SMTP 会话期间出现问题时会抛出异常。只需将其放在您网站的某个位置,然后查看随包提供的示例。

    【讨论】:

    • 感谢您的回答。感谢您尝试帮助我,这正是我一直在寻找的。但我还是有点失落,我害怕。如果我将函数更改为... function SendMail () { all the default phpMailer info in here } 并且如果我填写了默认的 phpMailer 信息,它应该在我调用函数 SendMail 的任何时候发送一封电子邮件正确的?我知道我需要从不同的 .php 页面调用某些变量。我需要的两个变量是 $ToName 和 $ToEmail。电子邮件和名称取决于打开的工单。所以唯一无法修复的是收件人电子邮件和姓名。
    猜你喜欢
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 2011-08-18
    • 2011-02-08
    • 2017-11-04
    相关资源
    最近更新 更多