从 SMTP 服务器使用 PHP 发送电子邮件 [英] Sending email with PHP from an SMTP server
问题描述
$from = "someonelse@example.com";
$headers = "From:" . $from;
echo mail ("borutflis1@gmail.com" ,"testmailfunction" , "Oj",$headers);
我在用 PHP 发送电子邮件时遇到问题.我收到错误消息:SMTP 服务器响应:需要 530 SMTP 身份验证
.
I have trouble sending email in PHP. I get an error: SMTP server response: 530 SMTP authentication is required
.
我的印象是您可以在没有 SMTP 验证的情况下发送电子邮件.我知道这封邮件可能会被过滤掉,但现在没关系.
I was under the impression that you can send email without SMTP to verify. I know that this mail will propably get filtered out, but that doesn't matter right now.
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = someonelse@example.com
这是php.ini
文件中的设置.我应该如何设置 SMTP?是否有不需要验证或必须我自己设置服务器的 SMTP 服务器?
This is the setup in the php.ini
file. How should I set up SMTP? Are there any SMTP servers that require no verification or must I setup a server myself?
推荐答案
当您通过需要 SMTP Auth 的服务器发送电子邮件时,您确实需要指定它,并设置主机、用户名和密码(以及如果不是默认端口,则可能是端口 - 25).
When you are sending an e-mail through a server that requires SMTP Auth, you really need to specify it, and set the host, username and password (and maybe the port if it is not the default one - 25).
例如,我通常使用 PHPMailer,其设置与此类似:
For example, I usually use PHPMailer with similar settings to this ones:
$mail = new PHPMailer();
// Settings
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->Host = "mail.example.com"; // SMTP server example
$mail->SMTPDebug = 0; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = 25; // set the SMTP port for the GMAIL server
$mail->Username = "username"; // SMTP account username example
$mail->Password = "password"; // SMTP account password example
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
您可以在此处找到有关 PHPMailer 的更多信息:https://github.com/PHPMailer/PHPMailer
You can find more about PHPMailer here: https://github.com/PHPMailer/PHPMailer
这篇关于从 SMTP 服务器使用 PHP 发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!