代码是:
function logit($txt) {
$log = fopen('/tmp/mail.txt','a+');;
fwrite($log,$txt."'n");
fclose($log);
}
function SendMail($ServerName, $Port, $ToEmail, $FromEmail, $Subject, $Body, $Header = '', $Username = '', $Password = '') {
$smtp = fsockopen($ServerName, $Port);
$InputBuffer = fgets($smtp, 1024);
$GECode=220;
if (substr($InputBuffer,0,3) != $GECode) {
logit('Connect:'.$InputBuffer);
fclose($smtp);
return FALSE;
}
fputs($smtp, "HELO $ServerName'n");
$InputBuffer = fgets($smtp, 1024);
$GECode=250;
if (substr($InputBuffer,0,3) != $GECode) {
fclose($smtp);
logit('HELO:'.$InputBuffer);
return FALSE;
}
if ($Username != '') {
fputs($smtp,"AUTH LOGIN'n");
$smtpResponse = fgets($smtp, 1024);
$GECode=250;
if (substr($InputBuffer,0,3) != $GECode) {
fclose($smtp);
logit('AUTH'.$InputBuffer);
return FALSE;
}
if ($Username != '') {
fputs($smtp, base64_encode($Username)."'n");
$smtpResponse = fgets($smtp, 1024);
$GECode=250;
if (substr($InputBuffer,0,3) != $GECode) {
fclose($smtp);
logit($InputBuffer);
return FALSE;
}
}
if ($Password != '') {
fputs($smtp, base64_encode($Password)."'n");
$smtpResponse = fgets($smtp, 1024);
$GECode=250;
if (substr($InputBuffer,0,3) != $GECode) {
fclose($smtp);
logit($InputBuffer);
return FALSE;
}
}
}
fputs($smtp, "MAIL From:<$FromEmail>'n");
$InputBuffer = fgets($smtp, 1024);
$GECode=250;
if (substr($InputBuffer,0,3) != $GECode) {
fclose($smtp);
logit($InputBuffer);
return FALSE;
}
fputs($smtp, "RCPT To:<$ToEmail>'n");
$InputBuffer = fgets($smtp, 1024);
$GECode=250;
if (substr($InputBuffer,0,3) != $GECode) {
fclose($smtp);
logit($InputBuffer);
return FALSE;
}
fputs($smtp, "DATA'n");
$InputBuffer = fgets($smtp, 1024);
$GECode=354;
if (substr($InputBuffer,0,3) != $GECode) {
fclose($smtp);
logit($InputBuffer);
return FALSE;
}
fputs($smtp, "From: $FromEmail'n");
fputs($smtp, "To: $ToEmail'n");
if ($Header != '') {
fputs($smtp, "$Header");
}
fputs($smtp, "Subject: $Subject'n'n");
fputs($smtp, "$Body'r'n.'r'n");
fputs($smtp, "QUIT'n");
$InputBuffer = fgets($smtp, 1024);
$GECode=250;
if (substr($InputBuffer,0,3) != $GECode) {
fclose($smtp);
logit($InputBuffer);
return FALSE;
}
fclose($smtp);
return TRUE;
}
$server = 'ssl://smtp.gmail.com ';
$port = 465;
$email='oil_karchack@yahoo.com';
$subject='test subject';
$body='test body';
SendMail($server,$port,'shervin_445@yahoo.com',$email,$subject,$body,$headers,'email','pass');
我也使用不发送邮件的邮件功能
这是一个评论,因为我需要空间。
这是为了确认通过"谷歌"smtp服务器发送电子邮件的实际需要的设置。用于从打印机、扫描仪或应用发送邮件的 Google 企业应用套件 SMTP 设置
我使用"SwiftMailer"免费功能丰富的PHP Mailer作为PHP Mail软件。"PhpMailer"也是可靠的邮件软件。我都用过。
我在发送消息时使用"SSL"加密选项,所以我使用端口:465。如果使用"TLS"加密,则使用端口:587
以下是我使用的设置 - "PhpMailer"将具有类似的设置 - (垃圾用户名和密码):
Transport:
->setHost('smtp.gmail.com')
->setPort(465)
->setEncryption('ssl')
->setTimeout(20)
->setUsername('not.valid@gmail.com')
->setPassword('not.valid.password!);
以下是"发送"的完整日志(请注意"确定"回复):
<< 220 mx.google.com ESMTP ha10sm2282960wjc.37 - gsmtp
>> EHLO [127.0.0.1]
<< 250-mx.google.com at your service, [123.123.123.123]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
>> AUTH LOGIN
<< 334 VXNlcm5hbWU6
>> zmZ2MTIzLnX123XN0aW9uc0BnbWFpbC5jb20=
<< 334 UGFzc3dvcmQ6
>> ZmluRTY12tpdGUlMDAx
<< 235 2.7.0 Accepted
++ Swift_SmtpTransport started
>> MAIL FROM: <questions@not.valid.uk>
<< 250 2.1.0 OK ha10sm2282960wjc.37 - gsmtp
>> RCPT TO: <not.valid@hotmail.com>
<< 250 2.1.5 OK ha10sm2282960wjc.37 - gsmtp
>> DATA
<< 354 Go ahead ha10sm2282960wjc.37 - gsmtp
>>
.
<< 250 2.0.0 OK 1426244335 ha10sm2282960wjc.37 - gsmtp