我在通过Php mail()函数向gmail发送电子邮件时遇到问题。我用我的雅虎邮件测试了这个脚本,没有问题(电子邮件正文没有附件)。这是我的代码:
$mailto = "info@email.com";
$charset = "utf-8";
$subject = "subject text";
$content = "text/html";
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: $content charset=$charset\n";
$headers .= "Date: ".date("Y-m-d (H:i:s)",time())."\n";
$headers .= "From: \"".$mailto."\" <".$mailto.">\n";
$headers .= "X-Mailer: My Send E-mail\n";
$message = "message text";
mail($_POST['posEmail'],$subject,$message,$headers);
答案 0 :(得分:1)
$headers .= "Content-Type: $content; charset=$charset\n";
内容和字符集之间的分号?
尝试使用\ r \ n结束行,而不是\ n。
答案 1 :(得分:1)
使用phpmailer类,它更安全,更容易使用。它支持附件和类似。
答案 2 :(得分:1)
$headers = 'To: ' . $epost . "\r\n";
$headers .= 'From: ' . $mailto . "\r\n";
$headers .= 'Message-ID: <' . $ordernummer . ">\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: quoted-printable';
这些标题可行。我还收到了一封名为noname.txt
的附件。
我添加了Message-ID
,Content-Transfer-Encoding
,从To
和From
中删除了真实姓名,跳过了电子邮件周围的<>
,取消了text/plain
左右的引号{1}}以及我大写的UTF-8
左右。
答案 3 :(得分:-1)
你只需编辑你的php.ini并把它放到
SMTP = smtp.gmail.com
smtp_port = 25
sendmail_from = youremailid@gmail.com