[英]Sending e-mail from a local host
我正在嘗試從本地主機發送電子郵件,我使用的程序是 MAMP。 我已經在網上查過這個並完成了所有寫的工作,但這仍然行不通。 我在 PHP 文件中輸入的發送電子郵件的函數是:
mail(
$admin_email, $messaage,
'Works!',
'An email has been generated from your localhost, congratulations!');
此外,我已經填寫了所有發送郵件值,如下所示:
smtp_server=smtp.gmail.com
; smtp port (normally 25)
smtp_port=25
smtp_ssl=ssl
auth_username=****@gmail.com
auth_password=*******
hostname=localhost
顯然 - 我的電子郵件和密碼是使用我的電子郵件和密碼填寫的。 我還修改了 php.ini 文件,如下所示:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;http://php.net/sendmail-path
sendmail_path = C:\Windows\System32\sendmail\ -t -i -f my_email@gmail.com
有人能告訴我我的錯誤在哪里嗎?
您將無法通過 Google 的 SMTP 服務器mail()
因為mail()
函數不執行SSL 或 TLS 身份驗證,這是必需的。 有關更多信息,請參閱此答案。 您應該考慮改用PHPMailer類。
另外,請注意您使用的mail()
不正確。 你有
mail(
$admin_email, $messaage,
'Works!',
'An email has been generated from your localhost, congratulations!');
第二個參數應該是一個主題,第三個參數應該是信息。 第四個參數是可選的,應該包含額外的郵件標題:
additional_headers (可選)
要插入到電子郵件標題末尾的字符串。
這通常用於添加額外的標題(發件人、抄送和密件抄送)。 多個額外的標題應該用 CRLF (
\\r\\n
) 分隔。 如果使用外部數據來組成此標頭,則應清理數據,以免注入不需要的標頭。
它不適用於您正在使用的純文本消息。 通過在格式正確的標頭所在的位置添加純文本,您可能會破壞某些服務器和某些郵件閱讀器。
如果您使用的是smtp_port=25
,則必須更改smtp_ssl=none
或使用此
smtp_port=587
smtp_ssl=tls
您是否從您的 Gmail 帳戶更改了這些設置
訪問您的電子郵件帳戶。 單擊齒輪工具 > 設置 > 轉發和 POP/IMAP > IMAP 訪問。 單擊“啟用 IMAP”,然后保存更改
對於檢查電子郵件使用這些代碼
<?php $to = 'myemail@yahoo.com'; $subject = 'Fake sendmail test'; $message = 'If we can read this, it means that our fake Sendmail setup works!'; $headers = 'From: myemail@egmail.com' . "\\r\\n" . 'Reply-To: myemail@gmail.com' . "\\r\\n" . 'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers)) { echo 'Email sent successfully!'; } else { die('Failure: Email was not sent!'); } ?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.