php
  • email
  • sendmail
  • postfix-mta
  • spam
  • 2011-10-09 116 views 5 likes 
    5

    我使用以下發送報名郵件:如何避免從PHP郵件發送的郵件()被標記爲垃圾郵件?

    $subject = 'subject is here'; 
    $message_raw = 'e-mail text'; 
    
    $message = base64_encode($message_raw); 
    
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n"; 
    $headers .= 'Content-Transfer-Encoding: base64' . "\r\n"; 
    $headers .= 'From: papa.sk <[email protected]>' . "\r\n"; 
    
    $sendit = mail($to, $subject, $message, $headers); 
    

    對於一些人的郵件被放入垃圾郵件文件夾(在Gmail中太)。

    在/etc/postfix/main.cf中我有這樣的:

    myorigin = /etc/mailname 
    smtpd_banner = papa1.vps.websupport.sk ESMTP 
    

    不知道我是否應該改變上述情況。

    +0

    請勿發送垃圾郵件。 (對吧?)當然,我在開玩笑。最有效的方法是讓您的用戶將您的電子郵件標記爲不是垃圾郵件。沒有太多好的解決方案(感謝垃圾郵件發送者)。 –

    +0

    我從未發送任何垃圾郵件。這是一個新的服務器,新的網站。自部署以來,不到10封郵件已經發布。服務器專用於該站點。 –

    +0

    Base64編碼的消息很有可能成爲垃圾郵件。 –

    回答

    2

    php mail()函數與您的電子郵件被標記爲垃圾郵件沒有任何關係。

    電子郵件被標記爲垃圾郵件發生在另一端。你不能用mail()來影響這個過程 - 因爲它是另一端。

    電子郵件被標記爲垃圾郵件的原因可能有上千種,只要您不知道電子郵件被標記爲垃圾郵件的具體原因,您就無能爲力。

    有一個整個行業以此爲生。

    +0

    如果有可能,大公司在向您發送電子郵件時將不會懇求您「標記爲垃圾郵件」。 –

    +0

    @RiMMER:我不明白你的意思。 – hakre

    2

    您可能需要服務器的反向DNS記錄。

    如果無法查找主機名,許多郵件服務器認爲從主機發送的郵件是垃圾郵件。那就是nslookup papa.sk應該返回一個ip地址,而nslookup <ip address>應該返回papa.sk.

    +0

    我可以在服務器上設置以某種方式回報的主機名,還是必須要求我的託管公司在服務器之外爲我設置它?我有一個完整的根訪問它... –

    +1

    你首先必須把它放在你的服務器(通過配置一個DNS服務器),但也告訴你的託管公司,你需要這樣一個反向DNS。請注意,很多託管公司都不提供此服務。解決這個問題的一種方法是通過您的託管公司確實提供的郵件轉發來發送郵件。 –

    +0

    我在哪裏可以找到郵件轉發的指南? –

    相關問題