찾다

 >  Q&A  >  본문

linux - SMTP服务器拒绝PHP函数发送邮件的问题?

1

2

<code>SMTP server error: 5.7.1 <********@qq.com>: Relay access denied

</code>

登陆服务器用mail -s "test" *****@qq.com 测试过smtp服务器是可以发送邮件的。为什么用PHP写的函数就被拒绝了呢?这段函数以前是起作用的,而且丝毫没动过。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<code>public function SendMail($address,$title,$message) {

    vendor('PHPMailer.class#phpmailer');

 

    $mail=new PHPMailer();

        // 设置PHPMailer使用SMTP服务器发送Email

    $mail->IsSMTP();

        // set HTML

    $mail->ishtml(true);

 

        // 设置邮件的字符编码,若不指定,则为'UTF-8'

    $mail->CharSet='UTF-8';

 

        // 添加收件人地址,可以多次使用来添加多个收件人

    $mail->AddAddress($address);

 

        // 设置邮件正文

    $mail->Body=$message;

 

        // 设置邮件头的From字段。

    $mail->From=C('MAIL_ADDRESS');

 

        //设置发件人名字

    $mail->FromName=C('MAIL_SENDER');

 

        // 设置邮件标题

    $mail->Subject=$title;

 

        // 设置SMTP服务器。

    $mail->Host=C('MAIL_SMTP');

 

        // 设置为“需要验证”

    $mail->SMTPAuth=true;

 

        // 设置用户名和密码。

    $mail->Username=C('MAIL_LOGINNAME');

 

    $mail->Password=C('MAIL_PASSWORD');

 

        // 发送邮件。

    $mail->Send();

    return $mail;

}

</code>

大家讲道理大家讲道理2912일 전365

모든 응답(3)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:36:29

    PHPMailer会使用那些经常被ISP方禁用的函数,如popen,你可以用phpinfo()查询一下disable_functions的值,看看是否关多了function。

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:36:29

    问题解决了,感谢大家的回答。最后看error发现是因为重启sasl后会把/var/run/saslauthd变成710。所以需要chmod.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-10 14:36:29

    我是用thinkphp框架的 ,也起到了这种问题 可以帮忙解决一下吗

    회신하다
    0
  • 취소회신하다