【问题标题】:PHP mail function doesnt work - XAMPP enviromentPHP 邮件功能不起作用 - XAMPP 环境
【发布时间】:2019-03-27 14:57:47
【问题描述】:

所以我的 maling.php 文件中有用于发送电子邮件的基本代码,但没有运气 - 总是返回“邮寄失败”

<?php
$emailTo = "{mymail}@gmail.com";
$subject = "This should work";
$body = "Hellou mark mun";
$headers = "From: {mysecondmail}@gmail.com";
if (mail($emailTo,$subject,$body,$headers)){
    echo "Email was send";
}else{
    echo "Mailing failed";
}
?>

我已尝试更改我的 sendmail.ini 和 php.ini 文件中的配置,如许多教程中所述,但它不起作用,所以现在我的文件只包含以下内容:

;php.ini
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = {mymail}@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

;sendmail.ini
[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username={mymail}@gmail.com
auth_password={mypass}

如果我使用上述配置和代码运行它,我将在 debug.log 中收到此消息:

18/10/23 13:14:52 ** --- MESSAGE BEGIN ---
18/10/23 13:14:52 ** To: gazchamber.music@gmail.com
18/10/23 13:14:52 ** Subject: This should work
18/10/23 13:14:52 ** From: marekpatras@seznam.cz
18/10/23 13:14:52 ** 
18/10/23 13:14:52 ** Hellou mark mun
18/10/23 13:14:52 ** --- MESSAGE END ---
18/10/23 13:14:54 ** Connecting to smtp.gmail.com:587
18/10/23 13:14:54 ** Connected.
18/10/23 13:14:54 << 220 smtp.gmail.com ESMTP l11-v6sm1398703wrn.61 - gsmtp<EOL>
18/10/23 13:14:54 >> EHLO Lenovo-PC<EOL>
18/10/23 13:14:54 << 250-smtp.gmail.com at your service, [89.176.232.140]<EOL>250-SIZE 35882577<EOL>250-8BITMIME<EOL>250-STARTTLS<EOL>250-ENHANCEDSTATUSCODES<EOL>250-PIPELINING<EOL>250-CHUNKING<EOL>250 SMTPUTF8<EOL>
18/10/23 13:14:54 ** Authenticating as gazchamber.music@gmail.com
18/10/23 13:14:54 >> STARTTLS<EOL>
18/10/23 13:14:54 << 220 2.0.0 Ready to start TLS<EOL>
18/10/23 13:14:54 >> QUIT<EOL>
18/10/23 13:14:54 <<  5  1[Ď®»˘Ĺ“5Ô3p   +şňźşŚ@Î.đ<¤-ť˝dĂ”  /   ˙   #  ó ď ě †0‚‚0‚j aŚČĐ‚LÔ0
    *†H†÷
 0T10   UUS10U
Google Trust Services1%0#UGoogle Internet Authority G30
181009130800Z
190101130800Z0h10   UUS10U
California10U
Mountain View10U

Google LLC10Usmtp.gmail.com0‚"0
    *†H†÷
 ‚ 0‚
‚ ćŃ—P™Ĺ@ʸPJeJíŹK9tąLnFdÝťšl¨T]”›íĐđi1=*xpŃ?Ą_ţxŞWŇĚ#±~ÎJż‡ď›FÝ,,Ģż…ČŹçĺźxMÄžľCYP‚"eÂéJe&Ř-wVůŇB‹0Ë˝ŹŞŻKä⟍&­łS¨ tşs›Ťz÷G…ÓîĎ…Kâ‘|Â)ťfśN˘1k^'ÜŽfąVôn
—gAňŞđ«Ô†s›(ŹŃíg“ştçËYűĐIDô+;ţ`ęqńH°Ýn23ÍżĄřW$c«    —†ăo±ßť€Jn(jjá\ÄfěˇÁ Ł‚B0‚>0U%0
+0U0‚smtp.gmail.com0h+\0Z0-+0†!http://pki.goog/gsr2/GTSGIAG3.crt0)+0†http://ocsp.pki.goog/GTSGIAG30UűâíDłëüýud€\Ś“ŮÝŚ0U˙0 0U#0€w¸Pšgvv±-†Р~¦~şK0!U 00
+Öy0g01U*0(0& $ "† http://crl.pki.goog/GTSGIAG3.crl0
    *†H†÷
 ‚ ľ%Ú{Ĺ=$ń˘YEź/˝=FŢ9bžwŔ…§ˇŕăî>Ý i-¶Ó»ü$ qÍň+áhŞź«w ďü9G߸‘ ×ч
5Ř/ŻüQyG8Ä°Ř    aC$ds¶ŃćhTľĚ`3 ˘…]MĐNXe‚EfËM—´´ŽkIţ‡[])Rář~6Úgë
_D[Y0ńĂ™Ĺ=$‰ű/říř{ć§#j:Ś:ŰÚ9ţIÝŃ&¨zćµÉůÚ|Ť4“•ŢK js"¬Nf,ŇM‡Đ/|…mĎ‹ĂU ć˙“’ő™ęŢIÖ‚XÝBOIňk=ş~Ë.ö»>ł€W `0‚\0‚D 
ă©0ür8?šS0
    *†H†÷
 0L1 0UGlobalSign Root CA - R210U

GlobalSign10U
GlobalSign0
170615000042Z
211215000042Z0T10   UUS10U
Google 
18/10/23 13:14:54 << Trust Services1%0#UGoogle Internet Authority G30‚"0<CR>    *†H†÷<CR> ‚ 0‚
‚ ĘRKę˙Î$k¨ÚrhŐV]HZ-5   vZϤȱ©ţS‰ű­4˙[ź»çč Ü5su­ł±ą¤}+&yÎ@
ďQ¸ź2Ś|p†RKţj'kć6zbPŘßš‰Ě   )ëO)€Ź8€j|˝—;x}EI6OA͢ŕvW<h1ydÉn×Qfâd,yŔçeĂV„SZCmËš ŇďiѰťs˘ŕ*`eP1Ďűł/ż@.µI
nÜ—úż,ź9XTŻ–čĹŽĽ¨MAĹ“‘˘ˇ‹ňţÁ$IŁGKĹݧWib+ëţ ďiű:Ąđ~)îí–÷± ä%ŕ3 Ł‚30‚/0U˙†0U%0++0U˙0˙ 0Uw¸Pšgvv±-†Р~¦~şK0U#0€›âWgŔjŢY´š-ß܆.05+)0'0%+0†http://ocsp.pki.goog/gsr202U+0)0' % #†!http://crl.pki.goog/gsr2/gsr2.crl0?U 80604g0*0(+https://pki.goog/repository/0
    *†H†÷
 ‚ ·‰–äSí»ěۨ2ź,ŁÍm­Bwł¸ćÉR` {W'Ƶ?g
™,[ZĘ"
Ýž»KH?Ź=‹!„Emő˙¬h‰ÍdâÖÖ^@ÂŽ*÷ďÓ6¤@0ő2’vű~žSęÂvü9­ţf’&éÄ8ÍIúC‡đ]ÖVM×ńÂݰMţĂ*n|źn\íbB™á÷6îŚ, ăF—ZwŔ ĆJý@"‡rZꜥÇZŚä¤}ą„5_‰6V@=č»5ríŻVN°».©›äű>cČ›K‘DfWŔ´–đÜ,W?R­•Ş}MĐňźś@čÖUsş<ßË [!gÂí2Ţ    
18/10/23 13:14:54 <<  F
18/10/23 13:14:54 ** Disconnected.
18/10/23 13:14:54 ** Disconnecting from smtp.gmail.com:587
18/10/23 13:14:54 ** Disconnected.
18/10/23 13:14:54 ** Disconnected.
18/10/23 13:14:54 ** Connection Closed Gracefully.

我几乎尝试了所有我发现的东西:

  • 禁用调制解调器和 Windows 防火墙
  • 尝试了多个端口 465,587,25
  • 尝试了多个邮件服务器(除了 gmail)
  • 将我的 php 和 sendmail 文件的属性更改为以管理员身份运行,并尝试在兼容模式下运行它们
  • 当我对配置文件进行更改时,我已经重新启动了 Apache
  • 尝试了多个配置文件(默认 XAMPP 有更改,从头开始创建一个..) 有谁知道是什么原因导致的?错误日志稍有更改,它会记录:“连接已正常关闭。”或“断开连接”。或两者都有,如示例所示。

【问题讨论】:

  • 让电子邮件在 localhost 上运行一直非常困难。为了让它更容易一些,我建议使用久经考验的邮件类。
  • 请不要使用mail()函数。 Gmail 必须通过安全连接 (TLS) 传输。最好使用“PHPMailer”或“Swift Mailer”或“zend-mail”。

标签: php xampp smtp sendmail mail-server


【解决方案1】:

18/10/23 13:14:54 ** 身份验证为 gazchamber.music@gmail.com

发送帐户的电子邮件 ID

18/10/23 13:14:52 ** 收件人:gazchamber.music@gmail.com

18/10/23 13:14:52 ** 来自:marekpatras@seznam.cz

您不能使用您的帐户凭据使用不同的电子邮件 ID。

除代码外,此步骤专门针对Gmail,您需要启用设置才能发送邮件。帐户setting 页面,请确保启用此功能:

【讨论】:

  • 呵呵,你的回答是因为某种原因触发了 chrome 翻译功能。
  • @Script47,不是我,仔细看看 OP 的邮件日志
  • 谢谢,我在示例中使用的电子邮件还没有设置它,但不幸的是它仍然不起作用 -> 记录相同的消息。
猜你喜欢
  • 2013-05-29
  • 2014-05-19
  • 2011-04-07
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多