ecshop实现SMTP发送邮件

发送邮件时在ECSHOP SMTP模式,在cls_smtp类文件,在get_data方法的语句被执行:

复制代码代码如下所示:

$线= fgets(美元->连接,512);



当时发生超时错误。

注释功能的执行,直接发送邮件,并返回错误EHLO命令失败。

但是,当打印出链接数据时,它实际上是连接的。

与其他程序发送邮件可以正常发送,所以函数重新发送,邮件发送到phpmailer。

复制代码代码如下所示:

功能smtp_mail($name,美元美元美元的电子邮件,主题,内容,类型为1美元美元,通知= false){

如果邮件没有ec_charset / *编码,创建一个字符集转换、编码转换。

如果美元'_cfg'} {(= { 'mail_charset}!= ec_charset)

{

$name = ecs_iconv(ec_charset,全局'_cfg } { {美元的'mail_charset},$name);

为主题ecs_iconv(ec_charset,全局'_cfg } { {美元的'mail_charset},$);

$content = ecs_iconv(ec_charset,全局'_cfg } { {美元的'mail_charset},$content);

shop_name美元= ecs_iconv(ec_charset,全局'_cfg } { {美元的'mail_charset},{ } { '_cfg全局美元的'shop_name});

}

$字符集= { } { '_cfg全球美元的'mail_charset};

include_once root_path。'包含用于在有 / /类phpmailer。phpmailer。php;

邮件=新PHPMailer(美元);

为邮件> = { } { '_cfg全球美元的'smtp_user};

为邮件-> fromname =云南***播有限公司;

如果($ = { '_cfg} { } = = 0 'mail_service){

邮件>伊斯梅尔();

{人}

为邮件-> issmtp();

为邮件->主机= = { } { '_cfg美元的'smtp_host};

为邮件->端口= { } { '_cfg全球美元的'smtp_port};

为邮件-> smtpauth =!空(= { } { '_cfg美元的'smtp_pass});

为邮件->用户名= = { } { '_cfg美元的'smtp_user};

为邮件->密码= = { } { '_cfg美元的'smtp_pass};

}

为邮件->编码=Base64;



为邮件->字符集= $字符集;

邮件-> ishtml美元(合型);

$;

$;

$ Mail =超时= 30;

为邮件-> smtpdebug = false;

为邮件-> clearaddresses();

邮件-> addaddress美元(美元的电子邮件,$name);

为邮件-> confirmreadingto = $通知;

$ $ =;

如果(!$ RES)

{

全局'err'} {美元->添加($邮件-> ErrorInfo);

全局'err'} {美元->添加($ = { '_lang} { 'sendemail_false});

返回false;

}

返回true;

}



以上是本文的全部内容,希望合作伙伴能喜欢。