为什么我不能用siwapp发票软件发送电子邮件?

时间:2012-07-28 05:09:28

标签: php fsockopen mailer

我已经安装了siwapp发票软件。它安装成功,但当我尝试使用定期配置文件或甚至向我的客户发送发票时,出现错误说:

Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:25 (Connection refused) in /home/olepress/public_html/my/lib/vendor/symfony/lib/vendor/swiftmailer/classes/Swift/Transport/StreamBuffer.php on line 233

Warning: Cannot modify header information - headers already sent by (output started at /home/olepress/public_html/my/lib/vendor/symfony/lib/vendor/swiftmailer/classes/Swift/Transport/StreamBuffer.php:233) in /home/olepress/public_html/my/lib/vendor/symfony/lib/response/sfWebResponse.class.php on line 336

Warning: Cannot modify header information - headers already sent by (output started at /home/olepress/public_html/my/lib/vendor/symfony/lib/vendor/swiftmailer/classes/Swift/Transport/StreamBuffer.php:233) in /home/olepress/public_html/my/lib/vendor/symfony/lib/response/sfWebResponse.class.php on line 357

Warning: Cannot modify header information - headers already sent by (output started at /home/olepress/public_html/my/lib/vendor/symfony/lib/vendor/swiftmailer/classes/Swift/Transport/StreamBuffer.php:233) in /home/olepress/public_html/my/lib/vendor/symfony/lib/response/sfWebResponse.class.php on line 357

我试图搜索它,有很多问题类似于我的问题,但我不太确定我们是否使用相同的软件。试图玩这个软件的源文件,我发现这个配置文件包含:

test:
  storage:
    class: sfSessionTestStorage
    param:
      session_path: %SF_TEST_CACHE_DIR%/sessions

  response:
    class: sfWebResponse
    param:
      send_http_headers: false

  mailer:
    param:
      delivery_strategy: none

all:
  routing:
    class: sfPatternRouting
    param:
      generate_shortest_url:            true
      extra_parameters_as_query_string: true
  user:
    class: SiwappUser
    param:
      timeout:         1800
      logging:         %SF_LOGGING_ENABLED%
      use_flash:       true
      default_culture: %SF_DEFAULT_CULTURE%

#all:
#  controller:
#    class: sfFrontWebController
#
#  request:
#    class: sfWebRequest
#    param:
#      logging:           %SF_LOGGING_ENABLED%
#      path_info_array:   SERVER
#      path_info_key:     PATH_INFO
#      relative_url_root: ~
#      formats:
#        txt:  text/plain
#        js:   [application/javascript, application/x-javascript, text/javascript]
#        css:  text/css
#        json: [application/json, application/x-json]
#        xml:  [text/xml, application/xml, application/x-xml]
#        rdf:  application/rdf+xml
#        atom: application/atom+xml
#
#  response:
#    class: sfWebResponse
#    param:
#      logging:           %SF_LOGGING_ENABLED%
#      charset:           %SF_CHARSET%
#      send_http_headers: true
#
#  user:
#    class: myUser
#    param:
#      timeout:         1800
#      logging:         %SF_LOGGING_ENABLED%
#      use_flash:       true
#      default_culture: %SF_DEFAULT_CULTURE%
#
#  storage:
#    class: sfSessionStorage
#    param:
#      session_name: symfony
#
#  view_cache:
#    class: sfFileCache
#    param:
#      automatic_cleaning_factor: 0
#      cache_dir:                 %SF_TEMPLATE_CACHE_DIR%
#      lifetime:                  86400
#      prefix:                    %SF_APP_DIR%/template
#
#  i18n:
#    class: sfI18N
#    param:
#      source:               XLIFF
#      debug:                false
#      untranslated_prefix:  "[T]"
#      untranslated_suffix:  "[/T]"
#      cache:
#        class: sfFileCache
#        param:
#          automatic_cleaning_factor: 0
#          cache_dir:                 %SF_I18N_CACHE_DIR%
#          lifetime:                  31556926
#          prefix:                    %SF_APP_DIR%/i18n
#
#  routing:
#    class: sfPatternRouting
#    param:
#      load_configuration:               true
#      suffix:                           ''
#      default_module:                   default
#      default_action:                   index
#      debug:                            %SF_DEBUG%
#      logging:                          %SF_LOGGING_ENABLED%
#      generate_shortest_url:            false
#      extra_parameters_as_query_string: false
#      cache:
#        class: sfFileCache
#        param:
#          automatic_cleaning_factor: 0
#          cache_dir:                 %SF_CONFIG_CACHE_DIR%/routing
#          lifetime:                  31556926
#          prefix:                    %SF_APP_DIR%/routing
#
#  logger:
#    class: sfAggregateLogger
#    param:
#      level: debug
#      loggers:
#        sf_web_debug:
#          class: sfWebDebugLogger
#          param:
#            level: debug
#            condition:       %SF_WEB_DEBUG%
#            xdebug_logging:  true
#            web_debug_class: sfWebDebug
#        sf_file_debug:
#          class: sfFileLogger
#          param:
#            level: debug
#            file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log

我在这里错过了什么吗?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

检查该应用程序的配置:您必须配置要使用的邮件服务器(smtp服务器)。在使用其他软件时,为其提供发送邮件的服务器的地址。

答案 1 :(得分:0)

如果您使用的是linux,请尝试在服务器上安装sendmail,(debian / ubuntu sudo apt-get install sendmail,(rhat / centos yum install sendmail)。

如果您拥有Gmail或ISP等外部SMTP服务器的凭据,则应该能够在找到的配置文件中指定主机详细信息和凭据,请参阅sending mail in siwapp的文档。

您可以使用类似于以下配置的SMTP:

prod:
  ...
  mailer:
    param:
      delivery_strategy: realtime
      transport:
        param:
          host: smtp.gmail.com
          port: 465
          encryption: ssl
          username: your_gmail_username@gmail.com
          password: your_gmail_password

要使用PHP sendmail,请使用以下配置:

prod:
...
  mailer:
    param:
      delivery_strategy: realtime
      transport:
        class: Swift_MailTransport

要编辑的配置文件是siwapp/config/factories.yml

希望有所帮助。

答案 2 :(得分:0)

我知道这个帖子已经老了,但我终于找到了解决这个非常严重错误的方法。

siwapp的安装说明有点......很多,整个画面很难得到。我已经平均编译了这些笔记

将factories.yml文件复制到配置文件夹

cp <siwapp_root>/apps/siwapp/config/factories.yml <siwapp_root>/config/factories.yml

修改您的产品部分

prod:
  ...

  mailer:
    param:
      delivery_strategy: realtime
      transport:
        param:
          host: smtp.gmail.com
          port: 465
          encryption: ssl
          username: your_email_address@gmail.com
          password: your_password

替换地址和密码的值。

将缓存清空/ cache / *(但不要删除目录本身!)以删除旧配置。我之前遇到过这方面的麻烦,所以建议您最好备份缓存目录......

tar -czf siwappcachebkp.tgz <siwapp_root>/cache/*

要手动配置电子邮件,如果由于某种原因重建缓存失败,则需要专门修改此文件:

<siwapp_root>/cache/siwapp/prod/config/config_factories.yml.php

在文件的末尾,您会发现硬编码到地图的邮件连接详细信息;输入正确的值,你就会好起来。