2013-07-15 197 views
0

我在網站上設計了一個聯繫表單,儘管我在線跟進了所有教程以使其起作用,但它不起作用。使用PHP發送電子郵件

我目前使用Windows的XAMPP,我知道我需要更改我的php.ini和sendmail,但無論我改變了多少SMTP設置,我都無法讓聯繫表單工作。

有人請給我一個關於整個過程如何工作的最新解釋嗎?

我打算最終把網站放到網上。當這到來時,我想從XAMPP的php.ini和sendmail文件不會有問題了嗎?那麼它如何在Web服務器上工作?

謝謝

+1

代碼和設置?如果您的主機提供商具有SMTP,您將不會遇到問題 –

+0

代碼與此類似: 郵件('... @ example.com','您好','這是測試電子郵件','來自:.. @ example.com「)。 我用這只是爲了測試電子郵件是否正在發送。它不工作,所以我猜測問題出在配置中。我的公司有一個郵件服務器已經建立,我知道我們的smtp端口是25,但它似乎並沒有工作,當我插入這些設置在php.ini – CodingStudent

+0

你需要設置標題 –

回答

0

您的php.ini不會在web服務器上工作。

大多數時候在網絡服務器上,電子郵件都由他們的smtp中繼處理。所以不要擔心網絡服務器中的電子郵件。要進行測試,只需在網絡服務器上的任何地址上傳您的電子郵件腳本,然後測試它是否有效。

在這裏,我提供的代碼應該在你的web服務器上工作。

$To = "email address of person whom you want to send email"; 
    $From = "your email address"; 
    $Subject = "subject of email"; 
    $Email = "your message"; 

    $Headers = "MIME-Version: 1.0" . "\r\n"; 
    $Headers .= "Content-type:text/html; charset=iso-8859-1" . "\r\n"; 
    $Headers .= "From: " . $From . "\r\n"; 

    $mail = mail($To, $Subject, $Email, $Headers); 

    if ($mail) { 

     echo "email sent"; 

    } else { 

     echo "email failed"; 

    } 
+0

我不太擔心電子郵件在網絡服務器。我猜想在本地測試它是一個真正的痛苦。我的代碼與你的代碼很相似,所以問題應該在我的php.ini設置 – CodingStudent

0

不要忘了在你的php.ini中設置一個有效的smtp,因爲在Windows上不使用sendmail。 使用您的ISP的smtp。

+0

教程我看到的是在Windows上,幾乎所有人都對sendmail進行了更改。我有一個有效的smtp並將其插入到我的php.ini中,但仍然無法工作。我只需要在php.ini中更改SMTP和端口以使其正常工作?或者是否有更多的變化在php.ini中進行? – CodingStudent

+0

在Windows上,只使用smtp服務器。 Sendmail僅適用於基於unix的系統。 ; Windows: SMTP = smtp.myisp.com –

0

您還可以使用遠程SMTP server, such as Gmail來測試本地發送的電子郵件。這樣可以避免在當前環境中配置電子郵件服務器。

在服務器上獲得代碼後,應該更改配置以使用Web服務器電子郵件服務器。

+0

您鏈接的帖子使用Pear Mail軟件包。有沒有辦法通過修改我的xampp設置? – CodingStudent

+0

不要這麼想...... http://php.net/manual/pt_BR/function.mail.php – foxtrot